Python Tkinter 模块不显示输出

新手上路,请多包涵

我正在尝试学习 Python 并在 Python 中尝试一些 GUI,并遇到了这个 Tkinter 模块。我的代码运行了,但是运行时窗口没有出现。我的代码如下:

 from Tkinter import *
#to create a root window
root = Tk()

程序运行,没有错误,但窗口没有显示。

原文由 mkumars 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 991
2 个回答

将此添加到您的代码中 root.mainloop()这是一个教程

回应您的评论

#Also note that `from <module> import *` is generally frowned upon
#since it can lead to namespace collisions. It's much better to only
#explicitly import the things you need.
from Tkinter import Tk, Label
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()

原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如其他答案所指出的,您需要在根对象上调用 mainloop

我推荐 OO 风格的编程,我还建议 不要 进行全局导入(即: _不是_“来自 Tkinter 导入 *”)。

这是我通常开始使用的模板:

 import Tkinter as tk

class ExampleView(tk.Frame):
    def __init__(self, root):
        tk.Frame.__init__(self, root)
        l = tk.Label(self, text="your widgets go here...", anchor="c")
        l.pack(side="top", fill="both", expand=True)

if __name__=='__main__':
    root = tk.Tk()
    view = ExampleView(root)
    view.pack(side="top", fill="both", expand=True)
    root.mainloop()

这使得您可以轻松地将主要逻辑放在文件的开头,并将根目录的创建和 mainloop 的调用放在一起,我认为这会使代码更容易理解一些。它还使重用此代码更容易一些(即:您可以创建一个更大的程序,其中这是可以创建的几个窗口之一)

原文由 Bryan Oakley 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题