Tkinter将图像放入框架,背景

问题描述 投票:0回答:1

屏幕:

首先,我的Frame的白色背景有问题,因为它超越了LabelFrame。其次,我希望图像位于我的框架中间。

img = ImageTk.PhotoImage(Image.open(filename))
panel.image = img
panel.configure(image=img)

ImageFrame = LabelFrame(page1, text="Podgląd", height=200, width=300, background='white')
ImageFrame.grid(row=0, column=3, pady=10, padx=5)
panel = Label(ImageFrame)
panel.grid(row=0, column=0, sticky='NESW')
ImageFrame.grid_propagate(0)
python image user-interface tkinter frame
1个回答
1
投票

LabelFrame包含标签,你给它bg颜色“白色”。如果你只想要内部是白色的,你可以通过插入一个新的Framebg='white',然后将图像放在那里。

然后;要将图像置于中间,你必须告诉grid()扩展细胞以用columnconfigure()rowconfigure()填充可用区域。请参阅下面的示例:

from tkinter import *

page1 = Tk()

ImageFrame = LabelFrame(page1, text="Podgląd", height=200, width=300)
ImageFrame.grid(row=0, column=3, pady=10, padx=5)
ImageFrame.grid_propagate(0)            # Stops geometry propagation
ImageFrame.columnconfigure(0, weight=1) # Expands cell to fill available space
ImageFrame.rowconfigure(0, weight=1)    # --- " ---

whiteframe = Frame(ImageFrame, bg='white')  # For white background
whiteframe.grid(row=0, column=0, sticky='nsew', padx=5, pady=5)
whiteframe.columnconfigure(0, weight=1) # Expands cell to fill available space
whiteframe.rowconfigure(0, weight=1)    # --- " ---

img = PhotoImage(file='images/beer.png')
panel = Label(whiteframe, image=img)
panel.image = img
panel.grid(row=0, column=0)

page1.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.