【发布时间】:2017-05-05 19:55:17
【问题描述】:
我可以设置主窗口的背景,我不必担心窗口会试图适应背景图像或将小部件推开的图像。
但是,当我尝试对框架做同样的事情时,它变得一团糟......
我已经尝试了一些东西,但一切似乎都与调整图像本身的大小有关,我不想扭曲图像。我希望图像在框架中,而不是调整框架大小以适应图像。
有没有办法将图像放置在框架的背景中而不改变框架的大小?
编辑:注意:我使用的图像足够大,可以填满屏幕,所以如果用户正在调整大小,图像将覆盖所有额外的空间。
这就是我向主窗口添加背景图像的方式:
bgImage=PhotoImage(file="./Colors/bgImage.png")
bgLable = Label(root,image = bgImage)
bgLable.image = bgImage
bgLable.grid(row=0,column=0,columnspan=3,rowspan=8)
但是,当我尝试对框架做同样的事情时,它也会调整框架的大小:
FrameTL = Frame(root, width = 100)
FrameTL.grid(row = 0, column = 0, rowspan = 20, columnspan = 1, sticky = W+N+S)
TLbg = Label(FrameTL,image = bgImage)
TLbg.image = bgImage
TLbg.grid(row=0,column=0)
我尝试了其他一些方法,但它们会扭曲图像以适应窗口/框架,我不想扭曲图像。
编辑:
我找到了一种解决方法。我没有使用框架,而是将 .grid 用于我的所有小部件,除了我需要在我的侧面菜单上的小部件。侧面菜单小部件并没有与窗口的左上角疏远,所以我试图使用框架来解决问题(现在使用 .place)。框架可以工作,但我找不到使框架透明的方法,这样我就可以将背景从我的根窗口中保留下来。这就是为什么我一直在尝试将背景图像添加到我的框架但没有调整框架大小以适应图像。
【问题讨论】:
-
当我在主窗口中为背景图像(我的屏幕大小)运行您的第一个 sn-p 时,它会调整窗口大小。
-
我的主窗口有一个设定的起始尺寸,打开程序后我可以调整它。
标签: python image tkinter frame