如何正确销毁 gtk.Dialog 对象/小部件
Noob @ 使用 python 和 pygtk 编程。
我正在创建一个应用程序,其中包含几个用于用户交互的对话框。
#!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()
这将显示我的消息对话框,但是,当您单击对话框中显示的“确定”按钮时,什么也没有发生,该框只是冻结。 我在这里做错了什么?
Noob @ programming with python and pygtk.
I'm creating an application which includes a couple of dialogs for user interaction.
#!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()
This displays my message dialog, however, when you click on the 'OK' button presented in the dialog, nothing happens, the box just freezes.
What am I doing wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@毫克
我的不好。您的代码是正确的(我想我最初的代码也是正确的)
我的对话框保留在屏幕上的原因是因为我的 gtk.main 循环在单独的线程上运行。
所以我所要做的就是将你的代码(我的更正版本)放在 a
和 a
之间,然后它就在那里。
感谢您的回复。
@mg
My bad. Your code is correct (and I guess my initial code was too)
The reason my dialog was remaining on the screen is because my gtk.main loop is running on a separate thread.
So all I had to was enclose your code (corrected version of mine) in between a
and a
and there it was.
Thanks for your response.
你能给我最后一次机会吗? ;)
您的代码中存在一些错误:
您没有关闭括号
.set_property
中的语法错误:使用:< code>.set_property('property', 'value')但我认为它们是复制/粘贴错误。
试试这个代码,它对我有用。也许您忘记了 gtk.main() ?
can you give me a last chance? ;)
there are some errors in your code:
you did not close a bracket
your syntax in
.set_property
is wrong: use:.set_property('property', 'value')
but i think they are copy/paste errors.
try this code, it works for me. maybe did you forget the
gtk.main()
?