我发现自己处于需要关闭从Gtk.Window
分类的窗口的情况。我连接的window.destroy事件最初关闭窗口到Gtk.main_quit
进行测试,但是当我将模块加载到我的主程序中时,我无法这样做,当然,没有关闭主程序。当我写了一个函数,我愚蠢地调用window.destroy()
方法,愚蠢的我导致了最大递归错误。所以,我决定连接一个'删除事件',然后调用仍然递归的window.destroy()
,因为(据我所知)一个销毁事件调用delete-event。所以,我连接破坏事件的功能,并试图拨打:导入Gtk并关闭窗口后访问Gdk区域
window.emit('delete-event')
其工作,但导致想要另一个参数错误。研究,我学会了它需要的是像这样从GTK2:
window.emit("delete-event", gtk.gdk.Event(gtk.gdk.DELETE))
我找不到Gdk
Gtk
下像我gtk
下找到gdk
。我不喜欢这个。我导入Gdk并找到Gdk.Event
,但没有与gtk.gdk.DELETE variable
等效。我做了一个:
l = dir(Gdk)
for i in l:
if 'DELETE' in i:
print(i)
并没有提出在Gdk中定义的DELETE变量。
我们如何从Gtk访问Gdk?如果不是,那么如何将这些gtk.gdk ...这些东西在Gdk下不存在的情况下翻译?
最终,我只是做:
del window
做什么,我需要做的,但我还是想知道怎么做发射信号上述Gtk3学习的目的。
感谢,
Narnie
第一部分确实有帮助。我无法找到它。后一部分将不起作用,因为我不想让'Gtk.main_quit'关闭窗口。如果没有连接到'destroy'或'delete-event'信号,用户提出请求时(假设请求来自X窗口并且没有单击关闭按钮),我该如何关闭窗口? – narnie
此外,感谢让我知道如何“发射”,而不是“发射”自己,但通过“Window.event”。我仍然很早就使用GUI,所以这是真正有用的小金块。我非常感谢那些非常轻松地帮助像我这样的人:) – narnie
好吧,如果用户点击X按钮,那么窗口会获得'delete-event'信号,默认情况下它应该关闭并销毁窗口,而不需要你必须做任何事情。我想我不明白你的后续问题? – ptomato