Python は、さまざまな種類のアプリケーションの実装に使用できる多用途のプログラミング言語です。 GUI (グラフィカル ユーザー インターフェイス) ベースのアプリケーションを作成するためのさまざまな種類のモジュールがあります。 Python tkinter もその 1 つです。 tkinter モジュールを使用すると、あらゆるデスクトップ アプリケーションを簡単に実装できます。 Python tkinter モジュールの使用法を学ぶには、Python プログラミングの基本的な知識があればより適切です。このチュートリアルでは、GUI アプリケーションを作成するための Python tkinter モジュールのさまざまな使用法を示します。
Tkinter モジュールをインストールする
tkinter モジュールは、デフォルトでは Python にインストールされません。したがって、Python 3 以降のバージョンに tkinter モジュールをインストールするには、次のコマンドを実行する必要があります。
$ 須藤 適切な インストール Python3-tk
さまざまな Tkinter ウィジェット
tkinter モジュールには、さまざまな目的のためのさまざまなウィジェットが含まれています。
ウィジェット名 | 目的 |
ラベル | ユーザーへのヘルプメッセージを表示するために使用されます。 |
ボタン | アプリケーションにさまざまなボタンを追加するために使用されます。 |
フレーム | これは、整理されたフォームを設計するためのさまざまなタイプのウィジェットを含むウィジェット コンテナーのように機能します。 |
エントリ | ユーザーから単一行のテキストを取得するために使用されます。 |
チェックボタン | これは、複数のオプションからユーザーから複数の入力を受け取るためのチェックボックス ボタンを追加するために使用されます。 |
ラジオボタン | これは、複数のオプションからユーザーから 1 つの入力を受け取るためのラジオ ボタンを追加するために使用されます。 |
コンボボックスボタン | これは、複数のオプションからユーザーから 1 つの入力を取得するドロップダウン リストを追加するために使用されます。 |
リストボックス | これは、複数のオプションからユーザーから複数の入力を取得するリストボックスを追加するために使用されます。 |
文章 | ユーザーから複数行のテキストを取得するために使用されます。 |
メッセージ | ユーザーへのメッセージウィンドウを表示するために使用されます。 |
スクロール・バー | ウィンドウにスクロールバーを追加してウィンドウを上下にスクロールするために使用されます。 |
メニューボタン | ユーザーにメニューを表示するために使用されます。 |
メニュー | ユーザーにメニュー項目を表示するために使用されます。 |
ペインウィンドウ | これは、水平ペインと垂直ペインを含むウィジェット コンテナーのように機能します。 |
タブ | アプリケーションにタブウィンドウを追加するために使用されます。 |
さまざまな Tkinter の例
いくつかの一般的な tkinter ウィジェットの使用法を次の例に示します。
例 1: 単純な GUI アプリケーションを作成する
次の内容を含む Python ファイルを作成します。このファイルは、タイトルと特定の高さと幅を備えたダイアログ ボックスを画面の中央に表示します。
#必要なモジュールをインポート
tkinterインポートから *
#ウィンドウのオブジェクトを作成
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「tkinterモジュールを学ぶ」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「300×150」 )
#ウィンドウの表示位置を中央に設定
tkobj.eval ( 'tk::PlaceWindow .中心' )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトを実行すると、次の出力が表示されます。 「Learn tkinter module」というタイトルのダイアログ ボックスが表示されます。
例 2: ラベルとボタンの使用
ラベルとダイアログ ボックスを含むウィンドウを表示する次のスクリプトを含む Python ファイルを作成します。
#必要なモジュールをインポートtkinterインポートから *
#ウィンドウのオブジェクトを作成する
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「tkinterモジュールを学ぶ」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「400×150」 )
#ラベルオブジェクトを定義
lbl = ラベル ( tkobj、 文章 = 「シンプルな窓です」 )
#ウィンドウにラベルを追加
lbl.パック ( ipadx = 30 、 iPad = 二十 )
#ボタンオブジェクトを定義
btn = ボタン ( tkobj、 文章 = 「クリックしてください」 )
# 位置を指定してウィンドウにボタンを追加します
ボタンパック ( ipadx = 30 、 iPad = 10 )
#ウィンドウの表示位置を中央に設定
tkobj.eval ( 'tk::PlaceWindow .中心' )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトを実行すると、ラベルとボタンのあるウィンドウが画面の中央に表示されます。
例 3: フォントの色と背景色の設定
ラベルとカラフルなボタンのあるウィンドウを表示する次のスクリプトを含む Python ファイルを作成します。ここでは、background 属性はボタンの背景色を設定するために使用され、foreground 属性はボタンのフォントの色を設定するために使用されます。
#必要なモジュールをインポートtkinterインポートから *
#ウィンドウのオブジェクトを作成する
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「tkinterモジュールを学ぶ」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「400×150」 )
#ラベルオブジェクトを定義
lbl = ラベル ( tkobj、 文章 = 「背景色と前景色を設定する」 )
#ウィンドウにラベルを追加
lbl.パック ( ipadx = 30 、 iPad = 二十 )
#背景色と前景色を使用してボタン オブジェクトを定義する
btn = ボタン ( tkobj、 文章 = 「クリックしてください」 、 背景 = '青' 、 前景 = '赤' )
# 位置を指定してウィンドウにボタンを追加します
ボタンパック ( ipadx = 30 、 iPad = 8 )
#ウィンドウの表示位置を中央に設定
tkobj.eval ( 'tk::PlaceWindow .中心' )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトを実行すると、次のウィンドウが表示されます。
例 4: フレームの使用
次の Python スクリプトでは、フレーム ウィジェット内にラベルと 2 つのボタンが表示されます。出力を確認するスクリプトを含む Python ファイルを作成します。
#必要なモジュールをインポートtkinterインポートから *
#ウィンドウのオブジェクトを作成する
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「tkinterモジュール」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「250×100」 )
#フレームオブジェクトを定義する
frm = フレーム ( tkobj )
フロムパック ( )
lframe = フレーム ( tkobj )
lframe.pack ( 側 =左 )
rframe = フレーム ( tkobj )
rframe.pack ( 側 =右 )
#フレーム内にラベルを定義
lbl = ラベル ( から、 文章 = 「フレームの使い方」 、 フロム = '青' )
lbl.パック ( )
#フレーム内にボタンを定義する
btn1 = ボタン ( lフレーム、 文章 = 「」 、 フロム = '黒' 、 バックグラウンド = '白' )
btn2.パック ( 側 =右 )
#ウィンドウの表示位置を中央に設定
tkobj.eval ( 'tk::PlaceWindow .中心' )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトの実行後、次の出力が表示されます。
例 5: ボタン イベントを処理する
メッセージ ボックスの使用方法を次のスクリプトに示します。ボタンをクリックするとメッセージ ボックスが表示されます。
#必要なモジュールをインポートするtkinterインポートから *
tkinterインポートメッセージボックスから
#ウィンドウのオブジェクトを作成する
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「tkinterモジュールを学ぶ」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「400×150」 )
#メッセージボックスを表示する関数を定義する
デフォルト表示 ( ) :
メッセージボックス.ショー情報 ( '情報' 、 「ボタンがクリックされました。」 )
#フォントの色、スタイル、位置を指定してラベル テキストを作成する
ラベル ( tkobj、 文章 = 「tkinterを使用したデスクトップアプリケーション」 、 フロム = '緑' ) 。パック ( パディ = 25 )
#ボタンハンドラーを使用してボタンを作成する
ボタン ( tkobj、 文章 = 「メッセージを表示」 、 指示 =表示 ) 。パック ( )
#ウィンドウの表示位置を中央に設定
tkobj.eval ( 'tk::PlaceWindow .中心' )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトを実行すると、次のウィンドウが表示されます。
ボタンを押すと、次のメッセージ ボックスが表示されます。
例 6: ユーザーからの入力を取得する
tkinter モジュールでは、ユーザーからの入力を受け取るために複数のウィジェットを使用できます。最も一般的なウィジェットの使用法を次のスクリプトに示します。次のコードを含む Python ファイルを作成して、出力を確認します。
#必要なモジュールをインポートするtkinterインポートから *
tkinter.ttk からコンボボックスをインポート
tkinter import ttk から
tkinterをインポートする として TK
tkinterインポートメッセージボックスから
#tkinter オブジェクトを作成する
tkobj = Tk ( )
#ウィンドウのタイトルを設定する
tkobj.title ( 「ユーザー情報フォーム」 )
#ウィンドウの高さと幅を設定する
tkobj.ジオメトリ ( 「550×320」 )
#フォームの値を表示する関数を定義する
デフォルトの表示値 ( ) :
#単一行のテキストを読む
名前 = '名前 : ' + name_val.get ( ) + 」 \n 」
#選択されたラジオボタンの値を読み取ります
もし 性別.get ( ) == 1 :
g = '男'
それ以外:
g = '女性'
g = '性別 : ' +g+ 」 \n 」
#選択されたチェックボックスの値を読み取ります
ゲーム = 「」
もし g1.get ( ) == 1 :
ゲーム = 'クリケット'
もし g2.get ( ) == 1 :
もし ゲーム ! = 「」 :
ゲーム += '、' + 'フットボール'
それ以外:
ゲーム = 'フットボール'
もし g3.get ( ) == 1 :
もし ゲーム ! = 「」 :
ゲーム += '、' + 'バスケットボール'
それ以外:
ゲーム = 'バスケットボール'
ゲーム = 'ゲーム : ' + ゲーム + 」 \n 」
#コンボボックスの値を読み取る
国 = '国 : ' + countryVal.get ( ) + 」 \n 」
#複数行のテキストを読む
住所 = '住所 : ' + アドレス取得 ( 「1.0」 、 '終わり' ) + 」 \n 」
#フィールドで取得されたすべての値をマージします
form_values = 名前 + g + ゲーム + 国 + 住所
#メッセージボックスに値を表示する
メッセージボックス.ショー情報 ( 「ユーザー情報詳細」 、フォーム値 )
#ラベルと名前フィールドを作成する
ラベル ( tkobj、 文章 = '名前 : ' ) 。場所 ( バツ = 100 、 そして = 二十 )
name_val = 文字列変数 ( )
ttk.エントリー ( tkobj、 テキスト変数 =name_val ) 。パック ( パドクス = 220 、 パディ = 二十 )
#ラベルとラジオボタンを作成する
ラベル ( tkobj、 文章 = '性別 : ' ) 。場所 ( バツ = 100 、 そして = 60 )
性別 = IntVar ( )
性別セット ( 1 )
ラジオボタン ( tkobj、 文章 = '男' 、 変数 =性別、 価値 = 1 ) 。場所 ( バツ = 210 、 そして = 60 )
ラジオボタン ( tkobj、 文章 = '女性' 、 変数 =性別、 価値 = 2 ) 。場所 ( バツ = 290 、 そして = 60 )
#ラベルとチェックボックスボタンを作成する
ラベル ( tkobj、 文章 = 「好きなゲーム:」 ) 。場所 ( バツ = 100 、 そして = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
チェックボタン ( tkobj、 文章 = 'クリケット' 、 変数 =g1 ) 。場所 ( バツ = 210 、 そして = 100 )
チェックボタン ( tkobj、 文章 = 'フットボール' 、 変数 =g2 ) 。場所 ( バツ = 290 、 そして = 100 )
チェックボタン ( tkobj、 文章 = 'バスケットボール' 、 変数 =g3 ) 。場所 ( バツ = 380 、 そして = 100 )
#タプル値を定義する
データ = ( 「バングラデシュ」 、 '日本' 、 'アメリカ合衆国' )
#ラベルとコンボボックスを作成する
ラベル ( tkobj、 文章 = '国 : ' ) 。場所 ( バツ = 100 、 そして = 140 )
countryVal = StringVar ( )
コンボボックス ( tkobj、 価値観 =データ、 テキスト変数 =countryVal ) 。場所 ( バツ = 220 、 そして = 140 )
#ラベルとテキストフィールドを作成する
ラベル ( tkobj、 文章 = '住所 : ' ) 。場所 ( バツ = 100 、 そして = 180 )
アドレス = ( tk.テキスト ( tkobj、 身長 = 3 、 幅 = 二十 ) )
住所 ( バツ = 220 、 そして = 180 )
#ボタンハンドラーを使用してボタンを作成する
ボタン ( tkobj、 文章 = '提出する' 、 指示 =表示値 ) 。場所 ( バツ = 250 、 そして = 250 )
#Tkinter を実行する
tkobj.mainloop ( )
出力:
スクリプトを実行すると、次のウィンドウが表示されます。
フォームのフィールドに記入し、「送信」ボタンを押してください。
送信された値を含む次のメッセージ ボックスが表示されます。
結論
このチュートリアルでは、Python tkinter モジュールを使用して GUI アプリケーションを作成する方法を、複数の例を使用して示します。