Python 如何正确销毁gtk.Dialog对象/小部件
使用python和pygtk进行Noob@编程 我正在创建一个应用程序,其中包括两个用于用户交互的对话框Python 如何正确销毁gtk.Dialog对象/小部件,python,pygtk,dialog,Python,Pygtk,Dialog,使用python和pygtk进行Noob@编程 我正在创建一个应用程序,其中包括两个用于用户交互的对话框 #!usr/bin/env python import gtk info = gtk.MessageDialog(type=gtk.DIALOG_INFO, buttons=gtk.BUTTONS_OK) info.set_property('title', 'Test info message') info.set_property('text', 'Message to be displ
#!usr/bin/env python
import gtk
info = gtk.MessageDialog(type=gtk.DIALOG_INFO, buttons=gtk.BUTTONS_OK)
info.set_property('title', 'Test info message')
info.set_property('text', 'Message to be displayed in the messagebox goes here')
if info.run() == gtk.RESPONSE_OK:
info.destroy()
这将显示“我的消息”对话框,但是,当您单击对话框中显示的“确定”按钮时,不会发生任何事情,该对话框将冻结。
我做错了什么?你能给我最后一次机会吗 您的代码中有一些错误: 您没有关闭支架 .set_属性中的语法错误:使用:.set_属性'property','value' 但我认为它们是复制/粘贴错误 试试这个代码,它适合我。也许你忘了gtk的主机了 @镁 我的错。你的代码是正确的,我想我最初的代码也是正确的 对话框留在屏幕上的原因是我的gtk.main循环在单独的线程上运行 所以我所要做的就是把你的代码修正版放在
gtk.gdk.threads_enter()
和
gtk.gdk.threads_leave()
就在那里。
谢谢您的回复。好的。你说得对,我确实有不好的语法,但那只是复制/粘贴错误,我的代码中确实有正确的语法。我刚刚尝试了你的建议,它确实打印了“ok”,表明测试结果在响应上是正确的,但是,在我按下ok按钮后,消息对话框仍然在屏幕上完全冻结。我一定错过了什么。
gtk.gdk.threads_leave()