当前位置: 首页 > 面试题库 >

Tkinter的消息框没有窗口?

能业
2023-03-14
问题内容

我想在ubuntu上运行的python脚本中显示一个信息窗口。我正在使用以下代码

import tkMessageBox
tkMessageBox.showinfo("Say Hello", "Hello World")

这可以工作,但是会显示一个空窗口,顶部是消息框。我如何摆脱窗口而只将消息框居中放在屏幕上(窗口管理器是gnome 2)?

这只是为了显示命令行脚本中的一些信息(密码,这就是为什么我不想仅将其回显到控制台)。


问题答案:

Tkinter必须具有根窗口。如果您不创建一个,则会为您创建一个。如果您不需要此根窗口,请创建它,然后将其隐藏:

import Tkinter as tk
root = tk.Tk()
root.withdraw()
tkMessageBox.showinfo("Say Hello", "Hello World")

您的另一选择是 使用tkMessageBox,而是将您的消息放在根窗口中。这种方法的优点是您可以使窗口看起来完全像您想要的样子。

import Tkinter as tk
root = tk.Tk()
root.title("Say Hello")
label = tk.Label(root, text="Hello World")
label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
button = tk.Button(root, text="OK", command=lambda: root.destroy())
button.pack(side="bottom", fill="none", expand=True)
root.mainloop()

(我个人会选择一种更加面向对象的方法,但在此示例中,我试图将代码保持在较小的位置)



 类似资料:
  • 问题内容: 下面的代码在IDLE内运行良好,否则会出现“ NameError:全局名称’messagebox’未定义”的情况。但是,如果我明确声明,则无论从哪里运行都很好。 为什么IDLE不需要显式import语句,而在其他地方则需要它? 问题答案: 消息框是tkinter的单独子模块,因此只需从tkinter进行完整导入即可: 不导入消息框 必须将其显式导入,如下所示: 以与必须显式导入ttk相

  • 这是完整的代码,这是一个滚动程序的原型,它被打破了(尽管如此),但是每当我试图点击它时,我都会看到没有响应的窗口

  • 我正在创建一个简单的tkinter窗口弹出窗口(粘贴链接:http://pastebin.com/kvv0G4rM).我面临的问题是标题信息(“输入费用”)从弹出的tkinter窗口中被切断。 我尝试过调整tkinter窗口的大小并将其移到中心。在这种情况下,标签、按钮的所有内容都不会完全填满屏幕。(尝试注释掉高度和尺寸注释以及.geometry函数调用) 看起来像这样 标签和按钮的当前场景 我使

  • pre { white-space: pre-wrap; } jQuery EasyUI 插件 通过 $.messager.defaults 重写默认的 defaults。 消息框(messager)提供不同样式的消息框,包括警示(alert)、确认(confirm)、提示(prompt)、进展(progress)等等。所有的消息框都是异步的。用户可以在与消息框交互后使用回调函数来完成一些动作。

  • 在这一课里,我们将通过一个简单的例子说明窗口、菜单、消息框的编程技术,并介绍用户接口更新消息机制。 3.1 编写第一个窗口程序 3.2 AppWizard所创建的文件 3.3 编译和链接Hello程序 3.4 应用程序执行机制 3.5几种窗口类型 3.6 使用菜单 3.7 更新命令用户接口(UI)消息 3.8 快捷菜单

  • 在前两章,程序使用了同一个函数MessageBox来向使用者输出文字。MessageBox函数会建立一个「窗口」。在Windows中,「窗口」一词有确切的含义。一个窗口就是屏幕上的一个矩形区域,它接收使用者的输入并以文字或图形的格式显示输出内容。 MessageBox函数建立一个窗口,但这只是一个功能有限的特殊窗口。消息窗口有一个带关闭按钮的标题列、一个选项图标、一行或多行文字,以及最多四个按钮。