Tkinter размещения изображения в рамку, фон - PullRequest
0 голосов
/ 30 марта 2019

Экран: Screen

Во-первых, у меня проблема с белым фоном моего фрейма, поскольку он выходит за рамки 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)

1 Ответ

1 голос
/ 30 марта 2019

LabelFrame содержит метку, и вы дали ей цвет bg "белый".Если вы просто хотите, чтобы интерьер был белым, вы можете сделать это, вставив новый Frame с bg='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()
...