gpt4 book ai didi

python - 调用 destroy() 后 GTK 窗口不会消失

转载 作者:行者123 更新时间:2023-12-01 08:41:22 27 4
gpt4 key购买 nike

我尝试使用以下代码从 Python 3 脚本显示确认窗口:

import time
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

dialog = Gtk.MessageDialog(modal=True, buttons=Gtk.ButtonsType.OK_CANCEL)
dialog.props.text = "Why won't this window dissappear?"
response = dialog.run()
dialog.destroy()
dialog.destroy()
dialog.destroy()

if response == Gtk.ResponseType.OK:
print('OK')
else:
print('Cancel')

time.sleep(100000)

我希望该窗口在单击“确定”或“取消”后消失。但是,该窗口在程序结束之前一直保持可见。我该怎么做才能让窗口消失?

注意:我想在一个简单且线性的 shell 脚本中提示用户进行确认。我不想实现完整的 GTK 应用程序,只是想请求确认。

最佳答案

您没有给 Gtk 时间(或命令)来更新被破坏的窗口。试试这个代码:

import time
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

dialog = Gtk.MessageDialog(modal=True, buttons=Gtk.ButtonsType.OK_CANCEL)
dialog.props.text = "Why won't this window dissappear?"
response = dialog.run()
dialog.destroy()
while Gtk.events_pending():
Gtk.main_iteration()

if response == Gtk.ResponseType.OK:
print('OK')
else:
print('Cancel')

time.sleep(1000000)

关于python - 调用 destroy() 后 GTK 窗口不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53476069/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com