2010-12-29 6 views
3

2つのComboBoxインスタンスをメソッドに渡してそこに使用したい(たとえば、アクティブな選択肢を表示する)。私は、次のようなものを持っている:私はそこにそれらを使用できるようにPyGTKのbutton.connectに引数を追加するにはどうすればよいですか?

class GUI(): 
    ... 

    def gui(self): 
    ... 
    combobox1 = gtk.combo_box_new_text() 
    # code for inserting some values into the combobox 
    combobox2 = gtk.combo_box_new_text() 
    # code for inserting some values into the combobox 
    btn_new = gtk.Button("new") 
    btn_new.connect("clicked", self.comboprint) 

    def comboprint(self): 
    # do something with the comboboxes - print what is selected, etc. 

は、どのように私は、メソッド「comboprint」にComboBox1のとcombobox2を渡すことができますか?クラスフィールド(self.combobox1、self.combobox2)をこれを行う唯一の方法にしていますか?それはこのようなものでなければなりません

btn_new.connect("clicked", self.comboprint, combobox1, combobox2) 

とコールバックでcomboprint

答えて

9

はこのような何か

def comboprint(self, widget, *data): 
    # Widget = btn_new 
    # data = [clicked_event, combobox1, combobox2] 
    ... 
+0

素晴らしいです、ありがとうございます。ありがとう – aeter

+0

@aeter:問題ありません:) – mouad

1

を私はComboBox1のとcombobox2クラス変数を作ることによって、これを別の方法で解決するだろう、このように:

class GUI(): 
    ... 

    def gui(self): 
    ... 
    self.combobox1 = gtk.combo_box_new_text() 
    # code for inserting some values into the combobox 
    self.combobox2 = gtk.combo_box_new_text() 
    # code for inserting some values into the combobox 
    btn_new = gtk.Button("new") 
    btn_new.connect("clicked", self.comboprint) 

    def comboprint(self): 
    # do something with the comboboxes - print what is selected, etc. 
    self.combobox1.do_something 

これは、 ther関数は、それらのコンボボックスを使って何かをする必要があります。コンボボックスをすべての関数にパラメータとして渡す必要はありません。

関連する問題