Python 类的内部。grid_rowconfigure()不工作
我正在创建一个基于GUI的Python游戏。我使用的每一帧都有一个类,但是当我设置行和列以便它们随窗口缩放时,什么也没有发生。代码执行,但它没有做它应该做的事情。我对编码领域非常陌生,在研究了几个小时后,我找不到解决方案 我已经在这个网站和谷歌上的其他地方寻找了答案。我已经测试了我在类和框架之外编写的代码,所有这些都有效。再加上那些东西,它就不起作用了Python 类的内部。grid_rowconfigure()不工作,python,python-3.x,class,tkinter,Python,Python 3.x,Class,Tkinter,我正在创建一个基于GUI的Python游戏。我使用的每一帧都有一个类,但是当我设置行和列以便它们随窗口缩放时,什么也没有发生。代码执行,但它没有做它应该做的事情。我对编码领域非常陌生,在研究了几个小时后,我找不到解决方案 我已经在这个网站和谷歌上的其他地方寻找了答案。我已经测试了我在类和框架之外编写的代码,所有这些都有效。再加上那些东西,它就不起作用了 from tkinter import * import sys class Application(Tk): def __init__
from tkinter import *
import sys
class Application(Tk):
def __init__(self):
Tk.__init__(self)
self._frame = None
self.switch_frame(StartPage)
def switch_frame(self, frame_class):
"""Destroys current frame and replaces it with a new one."""
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.pack()
#This is the starting page
class StartPage(Frame):
def __init__(self, root):
Frame.__init__(self, root)
label_1 = Label(self,text="I exist", font=('Courier', 30))
label_1.grid(row=0, column=1)
label_2 = Label(self, text="Pick a way to play", font=('Courier', 15))
label_2.grid(row=1, column=1)
button_1 = Button(self, text="New Game", fg='black', bg='green', width=25, command=lambda: root.switch_frame(PlayerInfo))
button_1.grid(row=1, column=0)
button_2 = Button(self, text="Load Game", fg='black', bg='yellow', width=25, command=lambda: root.switch_frame(LoadGame))
button_2.grid(row=1, column=2)
button_3 = Button(self, text='Exit Game', fg='black', bg='red', width=25, command=lambda: sys.exit())
button_3.grid(row=2, column=1)
label_3 = Label(self, text='')
label_3.grid(row=1, column=1)
label_4 = Label(self, text='')
label_4.grid(row=2, column=0)
label_5 = Label(self, text='')
label_5.grid(row=2, column=2)
#Here is the configuring problem
self.grid_columnconfigure(0,weight=1)
self.grid_columnconfigure(1,weight=1)
self.grid_columnconfigure(2,weight=1)
self.grid_columnconfigure(3,weight=1)
self.grid_rowconfigure(3, weight=1)
self.grid_rowconfigure(0,weight=1)
self.grid_rowconfigure(1,weight=1)
self.grid_rowconfigure(2,weight=1)
class PlayerInfo(Frame):
def __init__(self, root):
Frame.__init__(self, root)
Label(self, text='Game will start').pack()
class LoadGame(Frame):
def __init__(self, root):
Frame.__init__(self, root)
Label(self, text='Load old game').pack()
#Run it
if __name__ == "__main__":
app = Application()
app.mainloop()
我知道如何使用.grid_rowconfigure,但是当在类中使用它时,它根本没有做任何事情。非常感谢您的任何帮助或建议!: 问题不在于网格配置,而在于如何打包帧。您的框架只占用它所需的空间,因此即使您的窗口扩展,它也保持不变
要使框架也展开,请将另外两个参数传递给pack方法:
self._frame.pack(expand=True,fill="both")