我有以下代码。它应该打开某种窗口,但当我运行它或按回车或其他任何东西时都没有任何反应。我做错了什么或忘记了什么?
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)
您必须遇到许多语法错误,像这样更改语法
from tkinter import *
class Main:
def __init__ (self,root):
self.root = root
self.root.title("Reminder")
self.root.geometry("222x222")
if __name__ == '__main__':
root = Tk()
obj = Main(root)
root.mainloop()
答案 1 :(得分: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
此外,通常你只需要一个主循环,而不是两个,因为mainloop会运行,直到你杀死窗口。
希望有所帮助! (:
答案 2 :(得分: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__
。您可以在交互式会话中说服自己。
stacey@stacey-Inspiron-N4020:~$ 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
>>>
答案 3 :(得分:-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__':