「Pythonでデスクトップアプリを作ろう 前編」 その11
# -*- coding: utf-8 -*-"""Created on Tue Feb 28 12:50:14 2023@author: mlupi""""""『日経ソフトウエア』2022年09月号(p.024~p.040)の特集記事「特集2 Pythonでデスクトップアプリを作ろう 前編」に挑戦中。なお、基礎については、当ブログの「Pythonことはじめ」などを参照してください。"""# 「Pythonでデスクトップアプリを作ろう 前編」 その11# 目次# Part2 「BMI計算機」を作ろう(p.029~p.033)# ② grid関数でウィジェットを格子状に配置する(p.030~p.032)# 「grid関数」の「sticky」オプションを使う。(p.031~p.032)## 『日経ソフトウエア』2022年09月号(p.024~p.040)## 目次## Part1 TkInterの基本をマスターしよう(p.024~p.028)# ① ウィジェットとウィジェットの親子関係(p.024~p.026)# ② イベント駆動型のプログラミング(p.026~p.027)# ③ ウィジェットの配置(p.027~p.028)# Part2 「BMI計算機」を作ろう(p.029~p.033)# ① Buttonウィジェットの使い方(p.029)# ② grid関数でウィジェットを格子状に配置する(p.030~p.032)# ③ BMI計算機のデスクトップアプリを作る(p.032~p.033)# Part3 「割り勘計算機」アプリを作ろう(p.034~p.037)# ① 2つの画面を切り替える(p.034~p.035)# ② Comboboxウィジェットを使う(p.035~p.036)# ③ 割り勘計算機のデスクトップアプリを作る(p.036~p.037)# Part4 「4択クイズ」アプリを作ろう(p.037~p.040)# ① Radiobuttonウィジェットを使う(p.038~p.039)# ② CSVファイルを読み込む(p.039)# ③ 4択クイズのデスクトップアプリを作る(p.039~p.040)# Part2 「BMI計算機」を作ろう(p.029~p.033)# ① Buttonウィジェットの使い方(p.029)# ② grid関数でウィジェットを格子状に配置する(p.030~p.032)# 「grid関数」の「sticky」オプションを使う。(p.031~p.032)#========== リスト5●「Grid_04.py」# 「Grid関数」のテストプログラム。# 「grid関数」の「sticky」オプションを使う。(p.031~p.032)# GUIライブラリーの「Tkinter」モジュールを、「tk」という名前でインポートする。import tkinter as tk# 「Tk」関数を使って、ウインドウ(トップレベルtkウイジェット)を生成し、 「root」という名前を付ける# 「Tk」関数は、「Tk」クラスから、ウインドウ(トップレベルtkウイジェット)を生成するための関数。root = tk.Tk()# ウインドウの表示タイトルを「ボタンテスト」にする。root.title('Grid Test')# ウインドウの中身の大きさを指定# ウインドウの中身(タイトルバーなどを除いた内部)の大きさを「geometry」関数で指定する。# ('300x150')は、横サイズ=300ピクセル、縦サイズ=150ピクセルを表しているroot.geometry('400x200')# ウイジェットの数# テキストボックスの「Entry」ウイジェットを「Entry」関数を使って生成し、「pack」関数を使って配置する。WIDGET_MAX = 8# 「labelウイジェット」のリストを生成labels = [tk.Label(root, text='NO_'+str(num), relief=tk.SOLID) for num in range(WIDGET_MAX)]# 各列の割合を指定root.columnconfigure(0, weight=1)root.columnconfigure(1, weight=1)root.columnconfigure(2, weight=1)root.columnconfigure(3, weight=1)# 各行の割合を指定root.rowconfigure(0, weight=1)root.rowconfigure(1, weight=1)# 「grid関数」で配置# 「grid関数」の「sticky」オプションを使う。(p.031~p.032)labels[0].grid(column=0, row=0, sticky=tk.N)labels[1].grid(column=1, row=0, sticky=tk.S)labels[2].grid(column=2, row=0, sticky=tk.E)labels[3].grid(column=3, row=0, sticky=tk.W)labels[4].grid(column=0, row=1, sticky=tk.NS)labels[5].grid(column=1, row=1, sticky=tk.SE)labels[6].grid(column=2, row=1, sticky=tk.EW)labels[7].grid(column=3, row=1, sticky=tk.NSEW)# ウインドウを表示して、「メインループ」に入る。# 「mainloop(メインループ)」は、「イベントループ」で、ウインドウで発生する# 「イベント」を待っている状態のループ。root.mainloop()#========== リスト5●「Grid_04.py」は、ここまでリスト5●「Grid_04.py」の実行結果