【问题标题】:Tkinter placing Image into Frame, backgroundTkinter 将图像放入框架,背景
【发布时间】:2019-03-30 13:26:58
【问题描述】:

屏幕:

首先,我的 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】:

    LabelFrame 包含标签,并且您已将其背景颜色“白色”。如果您只是希望内部是白色的,您可以通过插入一个新的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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2020-11-01
      相关资源
      最近更新 更多