set button background with image of window background - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: set button background with image of window background (/thread-5587.html) |
set button background with image of window background - gray - Oct-12-2017 hello freinds i have put an image (self.image) on my window background now, i need to put another image(mi_but1) on this window.. my problem: image mi_but1 is put on window with a gray square behind it(a gray square between image mi_but1 and window's background) see the attached file...it doesnt look nice i don't want this gray background... what should I do? how can i remove this gray square behind the button(button background)? OR how can i put the image of window background(self.image) in behind of the button (button background) my code: from tkinter import * from PIL import Image, ImageTk root = Tk() root.title("Title") root.geometry("400x400") root.configure(background="black") class Example(Frame): def __init__(self, master, *pargs): Frame.__init__(self, master, *pargs) self.image = Image.open("/home/pi/Desktop/images/background/image.png") self.img_copy= self.image.copy() self.background_image = ImageTk.PhotoImage(self.image) self.background = Label(self, image=self.background_image) self.background.pack(fill=BOTH, expand=YES) self.background.bind('<Configure>', self._resize_image) mi_but1=PhotoImage(file="/home/pi/Downloads/images/buttons/starlarg.png") button2 = Button(self.background, text='button2',image=mi_but1) button2.image=mi_but1 button2.pack(side='top') def _resize_image(self,event): new_width = event.width new_height = event.height self.image = self.img_copy.resize((new_width, new_height)) self.background_image = ImageTk.PhotoImage(self.image) self.background.configure(image = self.background_image) e = Example(root) e.pack(fill=BOTH, expand=YES) root.mainloop() RE: set button background with image of window background - buran - Oct-12-2017 what GUI framework you use? maybe show some code... RE: set button background with image of window background - Larz60+ - Oct-12-2017 Don't set a geometry, let it expand with whatever is placed inside. I use grid, not pack but this is my choice, you should be able to make place work a label can work, but a frame is better add a frame on top of your root window, use relative width and height as follows: self.background = Frame(root, relwidth=1.0, relheight=1.0, bd=0, padx=0, pady=0, image=self.background_image) self.background .grid(row=0, column=0, sticky='nsew')I'm not sure I have the syntax right as I haven't tested, but it's close if not correct. If you switch to grid, please be aware that all widgets in the same container (the frame) must use grid as well. RE: set button background with image of window background - gray - Oct-18-2017 (Oct-12-2017, 10:41 AM)Larz60+ Wrote: Don't set a geometry, let it expand with whatever is placed inside.Frame doesn't have 'image' option |