「日経ソフトウェア2022年9月号 特集2 Python デスクトップアプリを作ろう」を実行してみました。
サンプルプログラム
サンプルプログラムは日経ソフトウェアのWebからダウンロードできます。
以下URLから「本誌バックナンバーを見る」→「2022年9月号」→「「特集2 Pythonでデスクトップアプリを作ろう 前編」(t22209.zip))」
PART1 TKinterの基本をマスターしよう
TKinterはPythonに標準で付属するGUIライブラリです。
ウィジェットとはここでは、「画面上に表示できるもの」という意味で使用しています。
ウィジェット名 | 説明 |
---|---|
Button | ボタン |
Canbas | 描画領域 |
Checkbutton | チェックボックス |
Combobox | コンボボックス |
Entry | テキストボックス |
Frame | フレーム(四角いコンテナ) |
Label | ラベル(1行テキスト) |
Labelframe | ラベル付きのフレーム |
Text | テキストボックス(複数行入力) |
Listbox | リストボックス |
Menubutton | プルダウンメニュー |
Radiobutton | ラジオボタン |
Notebook | タブ切り替え可能なページ |
Scale | スライドバー |
Scrollbasr | スクロールバー |
Spinbox | Entryに値を増減させるスピンボタンがついたもの |
Menu | ウィンドウメニュー |
PreGressbar | プログレスバー |
Separator | 境界線 |
Treeview | ツリー |
テキストボックスを持つウィンドウを表すプログラムです。
Entry(テキストボックス)を作成し、記入できる文字数を引数で渡しています。
pack関数使用してテキストボックスを配置します。pady=50は縦方向に50ピクセル余白をとることを表しています。
実行するとウィンドウが起動します。
イベント駆動型のプログラミング
「マウスボタンが押された」「キー入力があった」といったユーザーの操作をイベントと呼んでいます。
イベント駆動例です。
ウィンドウにテキストボックスを作成するところまでは、先ほどと同じです。
ハンドラ関数は、
・イベントが発生するとテキスト情報をGETし、メッセージと表示したメッセージボックスを表示する という内容です。
Labelは「赤い文字で『ここをクリック』と表示」し、pack()関数で配置します。
<Button-1>は左クリックのイベントを表し、bindで<Button-1>と"click"を関連付けしています。
「labelが左クリックされるとclick関数に飛ぶ」という記述です。
テキストボックスに文字を入力し赤い「ここをクリック」実行するとメッセージが別ウインドウに表示されます。
ウィジットの配置
ウィンドウのどこに配置するかは、pack関数実行時にside という引数でそれぞれの位置に配置することができます。
実行結果