見出し画像

PythonでのGUIの使用方法-3チェックボタン、コンボボックス、スケール

こんにちはrock204チャンネルです。
今回は「pythonでのGUIの使用方法 3、チェックボタン、コンボボックス、スケール」についてお送りします。

チェックボタンは項目選択に用いる 小さな四角い枠のことで、クリックすると「レ」のしるしが付くGUI部品です。
左の図がチェックが入った状態です。
紹介するプログラムではチェックが入ると、下のメッセージに「男性」と表示されるようになっています。
またチェックを外すと「未選択」と表示するようにプログラムをしています。

チェックボタンの設定について説明します。
最初に17行で boolean型の変数b_varを用意します。この設定にはtkinter.BooleanVar()を使用します。
そしてチェックボタンを入れる変数Check01を用意し、tkinter.Checkbuttonの後のカッコ内に
チェックボタンの横に表示する文字列 「男性」を、結果をいれる変数variable=b_varとし、フォントの指定と、チェックボタン実行時の処理をcommand=push_aで
設定します。
20行はチェックボタンの表示位置を指定しています。
結果の取得はpush_a関数内のb_var.get() 命令で取得し
チェックが入っていればtrueそうでなければfalseが 取得されます。
これをメッセージ のテキストに代入し表示するようにしています。

こちらにプログラム全体の前半部分を示します。
インポートするモジュールはtkinterのみです。
チェックボタンが 実行されると 四行から八行の 関数push_aが実行されます。

後半部分を示します。
16行から20行までが先ほど説明した チェックボタンの設定となります。
22行から は メッセージ ブジェクトの設定を示しています。
チェックボタンの結果は このメッセージのテキストに表示されるように しています。

次はコンボボックスの使用例を示しています。
この例では、コンボボックスを展開すると「昭和、平成、令和」の値が表示され、その値をクリックすると下のメッセージに結果が表示されるようにしています。
コンボボックスの設定について見ていきましょう。
最初に コンボボックスに表示するデータをリスト形式で用意します。
15行のようにdata_listとして 「昭和」、「平成」、「令和」の値をリストとして入力します。
次に コンボボックスオブジェクトとしてcombo1を用意しtkinter.ttk.Comboboxとして 括弧内にパラメーターをいれていきます。
まずstateとして”readonly”と設定します。これで読み込み専用となります。書き込みを可能にするには”normal”を入れます。
また”disabled”を入れると使用不可能となります。
そして表示する 値としてvales=data_listとして、15行で設定したデータを使用できるようにします。
その他としてフォントの設定も可能です。
19行目は 最初に表示する データの位置を0行目として設定しています。
20行目で コンボボックスの値が選択されたとき実行される関数を指定しています。この場合はselect_va関数を 呼び出すように設定しています。
そして22行目で コンボボックスを表示する位置を設定を行っています。
コンボボックスが 選択されると 五行六行に書かれた select_var()関数が実行されます。
この場合 カッコの中に任意の変数を入れておきます。
値の取得はcombo1.get()でおこないます。

こちらが プログラム全体の前半を表しています。
インポートするモジュールはtkinterのほかに tkinter.ttkも取り込む必要があります。
その下がコンボボックスを実行したときに 動作する関数select_var()関数を配置しています。

こちらがプログラムの後半となります。
先ほど説明した14行から 22行にかけてはコンボボックスの設定を示しています。
24行以降はメッセージの表示について記述しています。

チェックボタン、コンボボックスの実行

こちらにスケールの使用例を示しています。
スケールはつまみをスライドさせて値を指定することができるオブジェクトです。
紹介するプログラムでは ゼロから百までの値をつまみで選択することができるようにしています。
スケールの設定は 最初に結果を入れる変数ivを用意しtkinter.IntVar()と設定します。
次に スケールオブジェクトをscale1としてtkinter.Scaleのカッコの中に パラメーターを設定します。
最初のパラメーターとしてvariableとしてivを指定します。これは14行で設定した変数です。
そしてスケールの範囲をfrom 0からto 100として設定します。
スケールの上に表示するラベルとして「値の範囲」を設定しています。
またスケールの長さを200、幅を20として設定した後、 スケールの描画方向をorientでHORIZONTALとして水平方向に表示しています。
縦方向に表示したい場合はVERTICALを用います。
そしてcommand命令で スケールが実行されたときに実行する関数get_sacle()を指定しておきます。
関数get_scale()では 括弧の中に任意の変数を設定しiv.get()命令で結果を取得しメッセージのテキストに設定しています。

こちらはプログラムの前半部分を示しています。
Tkinterモジュールを インポートした後
スケールが実行された時の関数 get_scale()を記述し
ウィンドウの 表示を設定しています。

プログラムの後半ではスケールの設定
メッセージの設定を行っています。


https://youtu.be/XkY1JwLZcmo



この記事が気に入ったらサポートをしてみませんか?