5
A
回答
6
的摘錄:
創建自己的信號
繼承GObject的是定義 定製的信號時,你可能想 使用其他的事情。您可以創建自己的 可以發射的信號,以便您的課程的用戶可以連接 他們的 。
當一個信號發出時,將會執行一組關閉 。關閉 是回調 概念的抽象。關閉是回調 本身(一個函數指針),用戶 數據(它將是 回調的最後一個參數)和 清理問題的另一個函數,本文中討論的不會是 。
對於這篇文章的目的,你不 真正需要知道的回調和閉合,從而 兩個術語將被使用之間的區別 。但是建議 這不是完全正確的 。
正如我們前面所說的,當一個信號是 發出時,一組關閉將會執行 。其中一個 對於此類 的所有實例都是同一個 ,因此其名稱爲:類關閉, ,其他的是自定義用戶 回調。請注意,並非所有的 信號都需要關閉 ,因爲它是可選的。
從,http://www.pygtk.org/articles/subclassing-gobject/sub-classing-gobject-in-python.htm,希望有所幫助。還有就是網站和here,一個片段上的示例代碼:
import pygtk
pygtk.require('2.0')
import gobject
class Car(gobject.GObject):
__gproperties__ = {
'fuel' : (gobject.TYPE_FLOAT, 'fuel of the car',
'amount of fuel that remains in the tank',
0, 60, 50, gobject.PARAM_READWRITE)
}
__gsignals__ = {
'engine-started' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_FLOAT,))
}
def __init__(self):
gobject.GObject.__init__(self)
self.fuel = 50
def do_get_property(self, property):
if property.name == 'fuel':
return self.fuel
else:
raise AttributeError, 'unknown property %s' % property.name
def do_set_property(self, property, value):
if property.name == 'fuel':
self.fuel = value
else:
raise AttributeError, 'unknown property %s' % property.name
def do_engine_started(self, remaining_fuel):
print '***** Beginning of class closure *****'
print 'The engine is ready and we still have %f of fuel' % self.fuel
print '***** End of class closure *****'
def start(self):
self.emit('engine-started', self.get_property('fuel'))
gobject.type_register(Car)
3
的答案是正確的,當然,但使用libraries是不容易的煩惱:
import gobject
from pygtkhelpers.utils import gsignal
class Car(gobject.GObject):
gsignal('engine-started', float) # yeah baby
相關問題
- 1. 創建併發出GTK信號
- 2. 如何開始創建自定義GTK小部件(使用python)?
- 3. Python創建自定義NaN
- 4. 在Linux內核中創建您自己的自定義信號
- 5. 我如何使用自定義CellRendererText創建Gtk Iconview
- 6. 如何用自己的控件創建自定義的GTK#Widget?
- 7. 爲用戶激活其帳戶創建自定義信號
- 8. 在cocoa os上創建自定義事件/信號
- 9. Django的自定義信號
- 10. Python的GTK將信號組合框
- 11. 在Gtkmm中創建自定義IconFactory
- 12. 使用Python創建自定義語言
- 13. Python/Tkinter創建自定義窗口
- 14. 來自USB的自定義信號
- 15. 自定義Python構建 - time.so:未定義的符號:PyExc_ValueError
- 16. 創建自定義宏
- 17. 在python中動態創建DBus信號
- 18. 創建自定義Widget Gtk2/C?
- 19. 創建自定義集合
- 20. 創建自定義綁定
- 21. 創建自定義JSONEncoder
- 22. 創建方法信號自動啓動python中的事件
- 23. 「常量」GTK +信號爲GtkLabel
- 24. 使用haskell-gi GTK信號
- 25. gtk中的自定義圖標toggle_action
- 26. 與扭曲PyQt的信號:不能趕上自定義信號
- 27. Python PyQt4發射和接收自定義信號
- 28. 自定義信號和多線程
- 29. 用戶自定義信號1
- 30. Qt自定義QPushButton點擊信號
感謝您的接受,它打破了我由於某種奇怪的原因,一直持有10k的障礙。 – 2010-01-13 15:52:43
@Aiden:我的榮幸:對不起,我今天沒有留言(早日獲得配額)。 – jldupont 2010-01-13 16:00:13
不用擔心,把我推到'k'領域是非常感謝! – 2010-01-13 16:06:36