我正在用tkinter编程一个小游戏,简单地说,我卡住了。
我有一种od起始菜单,里面有两个按钮和一个标签。
如果我只是创建框架,一切都很好,它的大小是500x500像素
我希望在创建按钮和标签时背景不会改变,但无论我做什么,它都会适应大小。这是我的代码:
import tkinter as tk
def startgame():
pass
mw = tk.Tk() #Here I tried (1)
mw.title('The game')
back = tk.Frame(master=mw, width=500, height=500, bg='black')
back.pack()
go = tk.Button(master=back, text='Start Game', bg='black', fg='red',
command=lambda:startgame()).pack()
close = tk.Button(master=back, text='Quit', bg='black', fg='red',
command=lambda:quit()).pack()
info = tk.Label(master=back, text='Made by me!', bg='red',
fg='black').pack()
mw.mainloop()
我在stackoverflow上搜索了一下,没有找到有用的东西! 我发现只有一个问题和我的有点相似,但答案不起作用。我试过这个:
(1)mw.可调整大小(宽度=False,高度=False)
我无法想象有什么问题,我真的很绝望。
如果希望整个窗口具有特定的大小,可以使用
geometry
命令为其指定所需的大小。你只需要这么做。例如:
不过,您还需要确保窗口中的小部件的大小调整正确,因此请更改向其中添加框架的方式:
通过设置
pack_propagate(0)
,可以关闭pack_propagate
关闭
pack_propagate
这里基本上是说不要让框架内的小部件控制它的大小。所以你把它的宽度和高度设为500。关闭propagate stills允许它是这样的大小,而小部件不改变框架的大小来填充它们各自的宽度/高度,这是正常情况下会发生的事情要关闭调整根窗口的大小,可以设置
root.resizable(0, 0)
,其中在x
和y
方向上分别允许调整大小。要将maxsize设置为window,如另一个答案中所述,您可以设置
maxsize
属性或minsize
,尽管您只需设置根窗口的几何体,然后关闭大小调整。更灵活一点当您在小部件上设置
grid
或pack
时,它将返回None
。因此,如果您希望能够保留对widget对象的引用,那么不应该将variabe设置为要在其上调用grid
或pack
的widget。相反,您应该将变量设置为小部件Widget(master, ....)
,然后改为调用小部件上的pack
或grid
。有两种方法可以解决您的问题:
mw.geometry('500x500')
或者
back.place(x = 0, y = 0, relwidth = 1, relheight = 1)
*应使用第二个选项代替
back.pack()
相关问题 更多 >
编程相关推荐