簡體   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