Buttonウィジェットはクリック時に特定の動作を実行させるためのウィジェットで、最も使用頻度の高いウィジェットの一つとなります。以下、基本的な使い方から応用例までを整理しました
【スポンサーリンク】
Buttonの概要
各種オプションを用いて様々な外観のボタンを表示させた例を示します。
ボタンウィジェットのcommand
オプションを用いて、クリック時に実行する関数を紐づけることができます。この例では、4つのボタンすべて対して、クリック時にclicked
関数を実行するように設定しています。また、各種オプションを用いて、ボタンの外観設定も同時に行っています。
実行するとボタンが4個表示され、どのボタンをクリックしてもclicked
関数が実行されてコマンドラインに"Button widget is clicked!"が表示されます。
一番下のボタンはttkモジュールを使用したボタンで、現代的なデザインのボタンになります。特にカーソルを合わせるとボタンの色が変化する初期設定となっており、デザイン性に優れています。
【スポンサーリンク】
クリック数をカウントするボタン
ボタンをクリックした回数をラベルに表示し、10までカウントしたら0に戻るコード例を示します。
LabelのTextvariableオプションに変数(IntVar)を設定しておき、Buttonクリック時に実行する関数内でその値を1ずつ加算することで、Labelに表示される値を更新しています。
実行するとラベルとボタンが表示され、ラベルの値は最初ゼロとなっています。
ボタンをクリックするたびにラベルの数値が加算されていき、10まで到達した後にクリックすると初期値ゼロに戻ります。
【スポンサーリンク】
実行する関数に引数を渡す方法
やや複雑な処理を行う場合、ボタンクリック時に実行する関数に対して引数を渡したいケースが多くあります。
以下の例は、クリック時に実行する関数に対してクリックしたボタンウィジェットの情報を引数として渡し、コマンドラインにボタンのタイトルを表示する例となります。
command
オプションに関数を設定する際、"lambda:"を付けることで引数の設定が可能となります。そのまま引数を設定すると正常に動作しないのでご注意ください。