空的Tkinter窗口

时间:2014-06-04 12:39:50

标签: python tkinter

我正在做一些基本的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()

2 个答案:

答案 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)