Python 空Tkinter窗口

Python 空Tkinter窗口,python,tkinter,Python,Tkinter,我正在做一些基本的Tkinter代码,当我启动时,我没有得到任何错误,但是我的窗口是空的,尽管我已经添加了一些东西到它们中。我在这里看到了这个问题,但这对我并没有帮助,因为我有它说的事情要做 from tkinter import * class App: def __init__(self,master): frame = Frame(master) frame.pack self.sg = Button(frame, text = "Study Guide",

我正在做一些基本的Tkinter代码,当我启动时,我没有得到任何错误,但是我的窗口是空的,尽管我已经添加了一些东西到它们中。我在这里看到了这个问题,但这对我并没有帮助,因为我有它说的事情要做

from tkinter import *

class App:

def __init__(self,master):

    frame = Frame(master)
    frame.pack

    self.sg = Button(frame, text = "Study Guide", command = self.studyGuide)
    self.sg.grid(row = 2, column = 1)
    self.sg.pack()

    self.quizlet = Button(frame, text = "Quizlet", command = self.quizlet)
    self.quizlet.grid(row = 2, column = 2)
    self.quizlet.pack()

    self.flashcard = Button(frame, text = "Flash Cards", command = self.flashcard)
    self.flashcard.grid(row = 2, column = 3)
    self.flashcard.pack()

    self.quitButton = Button(frame, text = "Quit", command = frame.quit)
    self.quitButton.grid(row = 3, column = 2)
    self.quitButton.pack()

    self.text = Label(frame, text = "Social Studies Study Tool")
    self.text.grid(row = 1, column = 2)
    self.text.pack()

def studyGuide(self):
    print("Study Guide")

def quizlet(self):
    print("Quizlet")

def flashcard(self):
    print("Flashcards")

root = Tk()
app = App(root)
root.mainloop()

首先,对于您为其调用
grid
的每个元素,不要调用
pack
。你只需要使用其中一个。第二:

frame = Frame(master)
frame.pack
您似乎缺少一个括号

frame = Frame(master)
frame.pack()

不要混淆布局管理器!使用
pack()
grid()
,但不能同时使用两者

如果使用
pack
,请添加要打包项目的
侧:

frame.pack() # note the missing () in your code
...
self.sg.pack(side=TOP)
如果使用
grid()
,请在代码顶部添加
frame.grid()

frame.grid()
...
self.sg.grid(row = 2, column = 1)

“当我启动时,没有错误。”你没有?当我运行此程序时,我得到
\u tkinter.TclError:无法在.6242576中使用几何管理器网格,该网格已经有由pack管理的从属程序。这是你的密码吗?顺便问一下,为什么要使用
网格
?你只能使用一个。@SpaceMagnet下面的答案解决了你的问题吗?如果是这样的话,如果你能接受其中一个来标记问题已经解决,那就太好了。通常,您会同时使用pack和grid,只是不在同一个父级中,也不使用OP的方式。实际上,在应用程序中同时使用这两种方法是最好的做法,因为它们解决的问题略有不同。两者都不是真正的“一刀切”解决方案。@BryanOakley绝对正确!所以,不要把它放在同一个容器里。谢谢你的澄清!