我正在制作一个程序,我正在使用python的tkinter gui库构建。
我试图制作一个框架,其中包含所选网站的屏幕截图。我创建了框架和图像,但框架没有像预期的那样锚定到窗口的右侧。当框架内的标签元素具有图像时,框架是预期长度
但是,当所选网站没有图像时,框架不会一直延伸到窗口的右侧。
下面是我设置图像容器/框架和相应图像的代码部分。
self.frame_ImageContainer = Frame(self.tab_Details, width=320, height=180, bg='black', bd=2)
self.frame_ImageContainer.grid(column=4, row=0, rowspan=11, columnspan=3, sticky=(N, S, E, W))
self.button_TakeScreenshot = Button(self.frame_ImageContainer, text='Take Screenshot', command=self.fn_RunScraper)
self.button_TakeScreenshot.grid(column=1, row=5, sticky=(E, W))
self.widget_Image = Label(self.frame_ImageContainer, compound='top')
self.widget_Image.grid(column=0, row=0, rowspan=12, columnspan=3, sticky=N)
self.frame_ImageContainer.grid_columnconfigure(0, weight=1)
self.frame_ImageContainer.grid_columnconfigure(1, weight=1)
self.frame_ImageContainer.grid_columnconfigure(2, weight=1)
self.frame_ImageContainer.grid_rowconfigure(0, weight=1)
self.frame_ImageContainer.grid_rowconfigure(1, weight=1)
self.frame_ImageContainer.grid_rowconfigure(2, weight=1)
self.frame_ImageContainer.grid_rowconfigure(3, weight=1)
self.frame_ImageContainer.grid_rowconfigure(4, weight=1)
self.frame_ImageContainer.grid_rowconfigure(5, weight=1)
self.frame_ImageContainer.grid_rowconfigure(6, weight=1)
self.frame_ImageContainer.grid_rowconfigure(7, weight=1)
self.frame_ImageContainer.grid_rowconfigure(8, weight=1)
self.frame_ImageContainer.grid_rowconfigure(9, weight=1)
self.frame_ImageContainer.grid_rowconfigure(10, weight=1)
self.frame_ImageContainer.grid_rowconfigure(11, weight=1)
“截取屏幕截图”按钮不会垂直居中和放大水平即可。我试图将Take Screenshot按钮置于框架中间,但它目前仅垂直应用。我也尝试使用.place(relx=.5, rely=.5, anchor=CENTER)
,但是当我尝试时,框架/图像甚至不会显示在屏幕上。
答案 0 :(得分:2)
width
和{{ 1}}:
height
frame = tk.Frame(..., width=320, height=180, ...)
#frame.grid_propagate(False) # uncomment if children use pack
frame.pack_propagate(False) # uncomment if children use grid
:
place
完成两者的A Minimal, Complete, and Verifiable example:
widget.place(relx=.5, rely=.5, anchor='center')
答案 1 :(得分:1)
如何制作相框和相框图像保持一致的宽度&身高(320x180)?
如果您希望框架为特定尺寸,请先为其指定特定尺寸。接下来,使用place
向其中添加小部件,或者在使用grid
或pack
# if using pack:
self.frame_ImageContainer.pack_propagate(False)
# if using grid:
self.frame_ImageContainer.grid_propagate(False)
如何将“截图”按钮在图像框架内垂直和水平居中?
最简单的方法是使用place
,因为它不会影响其母版的大小,您可以提供相对坐标。
self.button_TakeScreenshot.place(relx=.5, rely=.5, anchor="center")