2017-08-25 4 views
-1

何かを接続する前にこれをどのように知ることができますか?pygtk3チェックする信号がある

does_signal_exist(widget, signal): 
    pass 

button = Gtk.Button() 

does_signal_exist(button, "clicked") # returns True 
does_signal_exist(button, "hello") # returns False 
does_signal_exist(button, "unboxed") # returns False 
does_signal_exist(button, "button-press-event") # returns True 

答えて

0
def does_signal_exist(gtkWidgetObj, sigTag): 
    try: 
     gtkWidgetObj.emit(sigTag) 
     return True 
    except: 
     return "unknown signal name" not in format_exc(): 
1

'manual'または'reference'と呼ばれる不思議なツールがあります。 Gtk-3.0マニュアルを探してClassesをクリックし、Gtk.Buttonを探してください。 Signalsを探します。そこになければ、前のオブジェクトから継承したシグナルに対しても同じことができます。

help(buttonまたはhelp(Gtk.Button)(対話型またはプログラム内のPython3の中で)を使用すると、すべてのメソッドにアクセスでき、クラスとインスタンスに関するその他の多くの情報が得られます。

上記のマニュアルを使用して、GiRepositoryモジュールをチェックしてください。これはGtkの内部とそのクラスとプロパティを見るために使用できる関数です。

そして、それが動作するかどうかあなただけチェックすることができます。あなたが実際にあなたが興味を持っている信号/イベントに接続できる場合は、Use try:/except:をチェックする

関連する問題