2015-05-27 63 views
-2

我有以下代碼。它應該打開某種窗口,但是當我運行它或按下Enter鍵或其他什麼時候什麼也沒有發生。我做錯了什麼,或者我忘了什麼?在python中打開主窗口

import sys 
import tkinter 
def main(): 
root= tkinter.Tk() 
root.title('Reminder') 
root.resizable(width=False, height=False) 
    tkinter.mainloop() 
    if __name__ == '_ _main_ _': 
    main() 
tkinter.mainloop() 
+0

您的縮進不正確。是這樣嗎?閱讀代碼呢? –

+1

如果你的代碼在粘貼之前確實有任何正確縮進的外觀,那麼肯定肯定'如果__name__ =='_ _main_ _':'意味着你的'main'函數從未被調用過。 –

+0

你的字符串中有空格'_ _main_ _''。它應該是''__main __'' –

回答

-1

我在你的代碼中看到的第一個問題是至少python2.7的import語句,它應該是:

進口的Tkinter

無論如何,該代碼似乎沒有工作,所以我想你可以使用一些例子也確實表現出窗口:

#!/usr/bin/env python 
import Tkinter as tk 

class Application(tk.Frame): 
    def __init__(self, master=None): 
     tk.Frame.__init__(self, master) 
     self.grid() 
     self.createWidgets() 

    def createWidgets(self): 
     self.quitButton = tk.Button(self, text='Quit', 
      command=self.quit) 
     self.quitButton.grid() 

app = Application() 
app.master.title('Sample application') 
app.mainloop() 

反正你有空格的:

if __name__ == '_ _main_ _': 

,它應該是

if __name__ == '__main__': 
+0

好吧,但給了我一個解決方案,但我想知道爲什麼我給出的代碼不起作用?首都T並沒有幫助。它甚至說它錯誤不知道Tkinter? – thales78

+0

'import tkinter'(小寫字母t)對於python 3.x是正確的。 –

+0

歐普沒有說他正在使用python3 –

0

你叫tkinter.mainloop()。你應該做的是root.mainloop()。

import sys     #imports 
import tkinter 
def main(): 
    root= tkinter.Tk()  #Setup root 
    root.title('Reminder') 
    root.resizable(width=False, height=False) 
    root.mainloop()   #Culprit 
if __name__ == '_ _main_ _': 
    main() 

root.mainloop()    #Culprit 

另外,通常您只需要一個主循環,而不是兩個主循環,直到您終止窗口。

希望有幫助! (:

+0

對不起,但不是嗎? – thales78

+0

@ thales78像其他人提到的那樣,你有一堆問題。其中之一就是tkinter.mainloop()是錯誤的。它應該是root.mainloop()。 – J369

0

嘗試增加實際的小部件來根

from tkinter import Tk, Frame, BOTH 

class Example(Frame): 

    def __init__(self, parent): 
     Frame.__init__(self, parent, background="white") 

     self.parent = parent   
     self.parent.title('Reminder') 
     self.pack(fill=BOTH, expand=1) 

def main(): 

    root = Tk() 
    root.geometry("250x150+300+300") 
    root.resizable(width=False, height=False) 
    app = Example(root) 
    root.mainloop() 

if __name__ == '__main__': 
    main() 

如果使用

if __name__ == '_ _main_ _': 
    main() 

main將永遠不會運行它應該是__main__你可以說服這個自己。互動式會議

[email protected]:~$ python3 
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> __name__ 
'__main__' 
>>> __name__ == '__main__' 
True 
>>> __name__ == '_ _main_ _' 
False 
>>>