Gtkを学んでいます。テキストボックスに押された数字を表示したい電卓を作りたかったのです。クリックされたさまざまなボタンに対してさまざまな関数を呼び出し、押されたボタンの値をテキストボックスに追加することで、それを完了しました。Python 2.7.3 の使用
0 から 9 までの 10 個の関数の代わりに単一の関数を使用できるように、押されたボタンのラベル値を取得する方法はありますか?
前もって感謝します
Gtkを学んでいます。テキストボックスに押された数字を表示したい電卓を作りたかったのです。クリックされたさまざまなボタンに対してさまざまな関数を呼び出し、押されたボタンの値をテキストボックスに追加することで、それを完了しました。Python 2.7.3 の使用
0 から 9 までの 10 個の関数の代わりに単一の関数を使用できるように、押されたボタンのラベル値を取得する方法はありますか?
前もって感謝します
エラーが発生しやすいのラベルを読み取る代わりにGtkButton
、ボタンによって表される値をボタン インスタンス自体に関連付ける必要があります。次に例を示します。
button = Gtk.Button(label='1')
button._value = 1
# add button to the container
button.connect('clicked', on_button_clicked)
button = Gtk.Button(label='2')
button._value = 2
# add button to the container
button.connect('clicked', on_button_clicked)
次に、シグナル ハンドラ内のボタン インスタンスから値を読み取ります。
def on_button_clicked(button):
print 'you pressed the button of value: %d' % (button._value)
GtkWidget
Python のインスタンスは Python オブジェクトであるため、他の Python オブジェクトと同様に動作します。