python gtk+事件

2024-05-21 02:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python和gtk。 有一个checker线程,用于查找变量。如果所有条件都正常,则应向gtk.main公司循环。引发的事件应该打开一个窗口并启动其他一些事情。在

大概是这样的:

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

def event:
   newWindow()

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


Tags: andeventtruegtkifmaindef事件
2条回答

所以。。我自己完成的。在

代码很简单:

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')

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

  1. 只需创建窗口,而不是发送事件。窗口将在创建期间获取事件,如果您愿意,可以处理这些事件。在
  2. 在之前创建新窗口,但将其隐藏,并将事件发送到该窗口。在
  3. 创建管道并将其设置为读取(使用glib.io_add_手表),然后向它发送一个字节(或者如果它是fire一次,则关闭它),侦听器将接收该事件。在

第一个选择对我来说最有意义。我加入第二个只是为了告诉你这是可以做到的(它最像你所要求的)。如果您正在处理多个线程或进程,第三个可能会很有用,而且对于您来说,由哪个线程或进程来创建窗口非常重要。在

相关问题 更多 >