「Pythonでデスクトップアプリを作ろう 後編」 その16
「Pythonでデスクトップアプリを作ろう 後編」 その16# -*- coding: utf-8 -*-"""Created on Sat Jun 10 16:13:21 2023@author: mlupi""""""『日経ソフトウエア』2022年11月号(p.046~p.065)の特集記事 9月号の「特集2 Pythonでデスクトップアプリを作ろう 前編」に引き続いて、 11月号の「特集3 Pythonでデスクトップアプリを作ろう 後編」に挑戦中。なお、基礎については、当ブログの「Pythonことはじめ」などを参照してください。"""# 「Pythonでデスクトップアプリを作ろう 後編」 その16# 標準の「Tkinter」+「SQLite3」を使って# Part3 「蔵書管理アプリ」を作る(p.058~p.065)# ② 「Menu」ウィジェットの使い方(p.060~p.061)#Python#Tkinter#SQLite3#日経ソフトウエア#デスクトップアプリ#データベース#Tkinter#Textウイジェット#_test.py#蔵書管理アプリ#Menuウイジェットのテストプログラム#Menuウイジェット#Menu関数#add_cascade関数#add_command関数# Menuウイジェットを使う際のコードの流れ# ①ウインドウに「Menu関数」でメニューバーを作る# ②メニューバーに「Menu関数」と「add_cascade関数」でメニューを作る# ③メニューに「add_command関数」で項目を作り、その項目が選択され# た時に事項する関数を設定する。# 併せて、その関数を設定する。## 『日経ソフトウエア』2022年11月号(p.046~p.065)## 目次## Intro Python+Tkinter+SQLiteが一番手軽(p.046~p.047)## Part1 SQLite3の基本をマスターしよう(p.047~p.053)# ① データベースを作成する(p.047~p.048)# ② テーブルを作成する(p.048~p.049)# ③ 「INSERT INTO」文でデータを追加する(p.049~p.050)# ④ データベースやテーブルの削除(p.050)# ⑤ 「SELECT」文でデータを抽出する(p.050~p.051)# ⑥ 「LIKE」演算子であいまい検索を実現する(p.051~p.052)# ⑦ 「ORDER BY」句でデータをソートする(p.052~p.053)# Part2 カレンダー型「メモアプリ」を作る(p.053~p.058)# ① メモアプリのデータベースを作る(p.053p.054)# ② メモを入力・表示する機能(p.054~p.055)# ③ カレンダー型「メモアプリ」のプログラム(p.055~p.057)# ④ 「保存」ボタンがクリックされた時の処理(p.057)# ⑤ 「calender」モジュールを使う(p.057~p.058)# Part3 「蔵書管理アプリ」を作る(p.058~p.065)# ① 「Treeview」ウィジェットの使い方(p.059~p.060)# ② 「Menu」ウィジェットの使い方(p.060~p.061)# ③ データベースを作成する(p.061~p.062)# ④ 「蔵書管理アプリ」を完成させる(p.062~p.065)#========== リスト2●「menu_test.py」は、ここから# 「menu」ウイジェットのテストプログラム# GUIライブラリーの「Tkinter」モジュールを、「tk」という名前でインポートする。import tkinter as tk# 「Tkinter」モジュールから「messagebox」モジュールをインポートする。from tkinter import messagebox# 「新規登録」がクリックされた時に実行されるハンドラ関数def save(): messagebox.showinfo('メッセージ', 'save')# 「削除」がクリックされた時に実行されるハンドラ関数def delete(): messagebox.showinfo('メッセージ', 'delete') # ウインドウの作成# 「Tk」関数を使って、ウインドウ「(トップレベルtk」ウイジェット)を生成し、 「root」という名前を付ける。# 「Tk」関数は、「Tk」クラスから、ウインドウ(「トップレベルtk」ウイジェット)を生成するための関数。root = tk.Tk()# ウインドウの中身の大きさを指定# ウインドウの中身(タイトルバーなどを除いた内部)の大きさを「geometry」関数で指定する。# ('300x150')は、横サイズ=200ピクセル、縦サイズ=150ピクセルを表しているroot.geometry('300x150') # ウインドウの表示タイトルを「Menuのテスト」にする。root.title('Menuのテスト')# メニューバーを作成menubar = tk.Menu()root.config(menu=menubar)# 操作メニューを作成menu_command = tk.Menu(menubar, tearoff=0)menubar.add_cascade(label='操作', menu=menu_command)# 操作メニューに「新規登録」「削除」メニューを追加するmenu_command.add_command(label='新規登録', command=save)menu_command.add_separator()menu_command.add_command(label='削除', command=delete)# ウインドウを表示して、「メインループ」に入る。# 「mainloop(メインループ)」は、「イベントループ」で、ウインドウで発生する# 「イベント」を待っている状態のループ。root.mainloop()#========== リスト2●「menu_test.py」は、ここまでリスト2●「menu_test.py」の実行結果「新規登録」をクリックした結果。「削除」をクリックした結果