我试图将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.mainframeNone,因为它是.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")