【问题标题】:Tkinter .pack() window not showing?Tkinter .pack() 窗口未显示?
【发布时间】:2014-10-13 17:23:24
【问题描述】:

我一直在开发一个简单的程序,可以让按钮输出一些东西。但是当我运行它时, 这

(顺便说一句,我是从互联网上得到的)没有出现。代码有问题还是什么? 请帮助我,以便出现上面的窗口:)

代码:

from Tkinter import *
def asdf():
    print('test')
tk = Tk()
b = Button(tk, text="test", command=asdf)
b.pack()

【问题讨论】:

  • 为什么所有的反对票?_?
  • 我看不出有任何理由对此投反对票。 +1

标签: python canvas tkinter window tk


【解决方案1】:

您忘记在程序结束时调用Tk.mainloop 方法:

from Tkinter import *
def asdf():
    print('test')
tk = Tk()
b = Button(tk, text="test", command=asdf)
b.pack()
##############
tk.mainloop()
##############

这样做会启动 Tkinter 的主事件循环并创建窗口。

【讨论】:

  • 一些操作系统或环境不需要调用mainloop来运行程序..
  • @Broly - 是的,我认为 *nix 系统不需要这个。但看起来 OP 正在运行 Windows,这是必需的。
  • @iCodez:不正确。 所有系统都要求主循环运行。但是,某些环境(例如 IDLE)会为您启动它。如果你正在编写一个必须能够从命令行运行的脚本,你总是需要调用mainloop
【解决方案2】:

看来你使用的是Python3,因为print后面有括号,所以from Tkinter import *应该是from tkinter import *。 Python 区分大小写。正如@user2555451 所提到的,您还忘记在代码末尾调用root.mainloop(),尽管窗口应该显示完全相同,但在发生任何事件(例如,单击、按键、焦点更改)时停止响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2018-01-08
    • 2014-03-25
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多