繁体   English   中英

python gtk +事件

[英]python gtk+ events

我正在使用python和gtk。 有一个检查线程,它寻找变量。 如果所有条件都没问题,它应该向gtk.main循环引发一个事件。 引发的事件应该打开一个窗口并启动其他一些事情。

它是这样的:

if x==True and y==True:
   raise event

def event:
   newWindow()

请给出一个代码示例如何实现它

gtk事件总是有目标。 您无法将事件“发送到主循环”。 大多数目标都是小部件。 您可以:

  1. 只需创建窗口,而不是发送事件。 该窗口将在创建过程中获取事件,如果您愿意,可以处理。
  2. 之前创建新的新窗口,但隐藏它,并将事件发送到窗口。
  3. 创建一个管道并将其设置为读取(使用glib.io_add_watch),然后向其发送一个字节(或者如果它是fire-once,则关闭它),并且监听器将接收该事件。

第一个选项对我来说最有意义。 我包括第二个只是告诉你它可以完成(它最像你要求的)。 如果您正在使用多个线程或进程,则第三个可能很有用,并且对于您创建窗口的哪个线程或进程非常重要。

所以......自己完成了。

代码很简单:

import gobject

class XX(gobject.GObject):
    # define signal parameters
    __gsignals__ = { 'signal-name' : (gobject.SIGNAL_RUN_FIRST, gobject.SIGNAL_TYPE_NONE, ())}

    gobject.__init__(self)

    def __init__(self):
        # some code

    def function(self):
        # emit signal
        self.emit('signal-name')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM