在python中打开主窗口
我有以下代码。它应该会打开一个类似的窗口,但当我运行它或按enter或其他任何键时,都不会发生任何事情。我做错了什么或者我忘记了什么在python中打开主窗口,python,python-3.x,tkinter,tk,Python,Python 3.x,Tkinter,Tk,我有以下代码。它应该会打开一个类似的窗口,但当我运行它或按enter或其他任何键时,都不会发生任何事情。我做错了什么或者我忘记了什么 import sys import tkinter def main(): root= tkinter.Tk() root.title('Reminder') root.resizable(width=False, height=False) tkinter.mainloop() if __name__ == '_ _main_ _': main(
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()
我在代码中看到的第一个问题是import语句,至少对于python2.7来说,它应该是: 进口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__':
您调用了tkinter.mainloop()。您应该做的是root.mainloop() 另外,通常只需要一个主循环,而不是两个,因为主循环一直运行到关闭窗口为止
希望有帮助!(:尝试将实际的小部件添加到根目录
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
将永远不会运行。它应该是\uuuuu main\uuuuu
。您可以在交互式会话中说服自己
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
>>>
你有很多语法错误,像这样改变你的语法
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()
好的,但给了我一个解决方案,但我想知道为什么我给出的代码不起作用?大写字母T没有帮助。它甚至说它错误不知道Tkinter?
import Tkinter
(小写字母T)对python 3.x.Op来说是正确的。我没有说他在使用Python3是的,目前它可以工作,我不知道为什么。我尝试了几次,等等,但突然它工作了。无论如何,感谢大家!我尝试了几件事情,直到我注意到没有执行任何操作,如果你觉得我的回答有用,或者至少感谢我的努力,请将其标记为回答你的索引这个缩进是不正确的。在你读的代码中也是这样吗?如果你的代码在粘贴它之前确实有任何正确的缩进的样子,那么肯定是的问题,如果
意味着你的main
函数从未被调用过。你的字符串中有空格'>很抱歉,这不是吗?@thales78正如其他人提到的,您有一大堆问题。其中之一是tkinter.mainloop()是错误的。它应该是root.mainloop()。
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()