我正在做一些基本的Tkinter代码,当我启动时我没有错误,但我的窗口是空的,即使我已经添加了东西。我在这里看到了this的问题,但这对我没有帮助,因为我知道它要做什么。
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()
答案 0 :(得分:2)
首先,对于您呼叫grid
的每个元素,请不要致电pack
。您只需要使用其中一个。第二:
frame = Frame(master)
frame.pack
您似乎在这里错过了一个括号。
frame = Frame(master)
frame.pack()
答案 1 :(得分:1)
不要混淆布局管理员!使用pack()
或grid()
,但不能同时使用。{/ p>
如果您使用pack
,请添加side
打包项目的位置:
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)