如何隐藏Tkinter Python GUI

4

有人知道如何隐藏 Python GUI Tkinter 吗?我创建了一个键盘记录器,GUI 使用了 Python 的 Tkinter 模块。我想添加一个名为“隐藏”的按钮,当用户单击它时,它将隐藏 GUI;当用户按下像 CTRL+E 这样的键时,它应该取消隐藏 GUI...


2
当窗口被隐藏时,它将不会接收任何键盘或鼠标事件。你知道这一点吗?它只能记录在tkinter窗口中按下的键。 - Bryan Oakley
4个回答

20

要隐藏默认的根窗口,您可以使用

root.withdraw()

而要使其再次可见,您可以使用

root.deiconify()

我尝试添加root.withdraw() exitButtonPushed(),而不是root.destroy(),但它不起作用,请参见上面的代码。 - blaz1988
谢谢,我会尝试另一种方式。当用户点击“运行”时,我将运行keylogger.py;而当用户点击“隐藏”时,程序将退出GUI,但keylogger.py将继续运行。 - blaz1988

4

Python 3:

from tkinter import Tk

root = Tk()
root.withdraw()

3
如果您想“隐藏”窗口(而不是销毁它)并将其带回来,则可以通过设置alpha通道来实现。
要隐藏窗口,请将alpha通道设置为0:
master.attributes('-alpha', 0)

要恢复窗口,请将透明度设置为1.0:

master.attributes('-alpha', 1.0)

[编辑 - 原始答案中类型/范围不正确。范围是从0到1.0,且为浮点数]


这不是所有系统都支持的;在不支持的情况下,Tkinter 总是使用 1.0alpha - Carson
谢谢您的评论。是的,我最初回答错了。 - Mike from PSG

0
为了关闭一个GUI窗口,我在我的代码中使用了以下方法。

window.destroy()

并且以下内容可以再次调用。

nameoffunction() window.lift()


window.destroy 什么也不做。如果你想调用 destroy 方法,你必须包含括号:window.destroy()。如果你在根窗口上调用它,程序将退出。 - Bryan Oakley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接