我想使用Tkinter的GUI,並已實現菜單欄。我查看了一些教程併爲它編寫了一些代碼,但菜單欄似乎從未出現 - 只是具有白色背景的空白幀。這不僅僅發生在我的代碼上;在將上述教程之一的代碼複製並粘貼到新腳本中時,會出現相同的行爲。蟒蛇Tkinter菜單欄不顯示
我會很感激,如果任何人可以擺脫任何光線導致這一點。我的系統是OS X 10.5,Python 2.7,Tk 8.4。下面是本教程不會出現工作代碼:
#!/usr/local/bin/python2.7
from Tkinter import *
from ttk import *
class App(Frame):
def __init__(self):
Frame.__init__(self)
self.master.geometry('400x300')
self.master.title(__file__)
self.pack()
self.menu = Menu(tearoff=False)
self.master.config(menu = self.menu)
fm = self.file_menu = None
fm = Menu(self.menu, tearoff=False)
self.menu.add_cascade(label='File', menu = fm)
fm.add_command(label='Say Hello', command = self.say_hello)
fm.add_separator()
fm.add_command(label='Quit', command = self.quit)
self.mainloop()
def say_hello(self, *e):
self.label = Label(self.master, text='Hello there!')
self.label.pack(anchor=CENTER, fill=NONE, expand=YES, side=LEFT)
if __name__ == '__main__':
App()
,我的代碼是在這裏:
from Tkinter import *
class App(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
parent.title("Cluedo Solver 1.0")
menubar = Menu(root)
menubar.add_command(label="File")
menubar.add_command(label="Quit", command=root.quit())
root.config(menu=menubar)
root=Tk()
root.geometry("300x250+300+300")
app=App(root)
root.mainloop()
你的例子從來沒有創建self.master,這是你的實際代碼? – 2013-03-12 23:09:06
感謝您的回覆!這實際上不是我的代碼,它是我使用的其中一個教程中的其他人的代碼,但他們都遇到同樣的問題,所以我認爲將它粘貼更好。我會編輯我的帖子以包含我的。 – user2163043 2013-03-13 00:05:43
你也是對的,我沒有注意到關於self.master的信息 - 猜猜它寫得太急了!如果我放一個root = Tk(),把root作爲App的__init__的參數(並將其饋入最後一行),立即將self.master = root放入__init__並放入root。mainloop()在腳本的末尾,我仍然找到相同的結果... – user2163043 2013-03-13 00:12:59