我试图将3个按钮放在灰色框架(标有大型机)内,即使我将按钮的父母放在框架中。
import tkinter
class theUI():
def __init__(self):
self.root = tkinter.Tk()
self.root.geometry("500x600")
self.mainframe = tkinter.Frame(self.root, height=300, width=400, bg="gray").pack(side="left")
tkinter.Button(master=self.mainframe, text="Rock").pack(side="left")
tkinter.Button(master=self.mainframe, text="Paper").pack()
tkinter.Button(master=self.mainframe, text="Scissors").pack(side="right")
self.root.mainloop()
game = theUI()
我尝试使用Pack和Grid,但它们都给了我同样的问题。我刚刚开始使用TKINTER,因此我仍在学习小部件的工作方式。
分析解答
请注意,self.mainframe
是None
,因为它是.pack(...)
的结果。因此,按钮将是根窗的孩子,因为他们的父母是None
。
您需要分开以下行:
self.mainframe = tkinter.Frame(self.root, height=300, width=400, bg="gray").pack(side="left")
分为两行:
self.mainframe = tkinter.Frame(self.root, height=300, width=400, bg="gray")
self.mainframe.pack(side="left")