「PythonでGUIアプリ開発」に挑戦!Tkinter/Ttk編 その7
「PythonでGUIアプリ開発」に挑戦!Tkinter/Ttk編 その7ステップ01 ウインドウを表示するステップ02 ボタンでメッセージボックスステップ03 クラスでコーディングを楽にステップ04 「終了」メニューを作ろうステップ05 必須の「バージョン情報」ステップ06 ヘルプはWebサイトに置くステップ07 Textで複数行の処理ステップ08 スクロールバーを付けようステップ09 ウインドウの大きさを取得ステップ10 INIファイルに設定を保持ステップ11 空のメニュー項目を作るステップ12 ファイル処理を実装するおまけ .pyファイルのexe化## ステップ06 ヘルプはWebサイトに置く# 『日経ソフトウエア』2021年9月号「特集1 PythonでGUIアプリ開発」の基礎(p.12~p.13)## リスト7 TextEdit06.py## リスト6に付け加えた部分は、(1)~(4)# モジュール(tkinter)のインポートfrom tkinter import *# モジュール(messagebox, ttk)のインポート# messageboxモジュール:メッセージボックスを表示するfrom tkinter import messagebox, ttk# (1)webbrowserモジュールをインポートするimport webbrowser# 「TextEdit」クラスの定義class TextEdit: def __init__(self, root): root.title(self.__class__.__name__) root.geometry('300x50') # メニューの切り離し(tear off)を禁じるコード root.option_add('*tearOff', FALSE) # Menuクラスのインスタンスを生成し、名前「menu」で参照可能にする menu = Menu() # もう一つMenuクラスのインスタンスを生成し、名前「menuFile」で参照可能にする menuFile = Menu() # menuの「add_cascade」メソッドを呼び出し、menu・label・underlineオプションを指定する # menuオプションに、「menuFile」を指定 # labelオプションに、メニューとして表示する文字列「ファイル(F)」を指定する。 # underlineオプションは、文字列の何番目に下線を引くかを設定するもので、 # 「F」は文字列「ファイル(F)」の6番目であるため、「5」(最初の文字が「0」)を設定。 menu.add_cascade(menu=menuFile, label='ファイル(F)', underline=5) # menuFileにコマンド「終了(X)」を追加 menuFile.add_command(label='終了(X)', underline=3, command=self.menuFileExit) # もう一つMenuクラスのインスタンスを生成し、名前「menuHelp」で参照可能にする menuHelp = Menu() # menuの「add_cascade」メソッドを呼び出し、menu・label・underlineオプションを指定する # menuオプションに、「menuHelp」を指定 # labelオプションに、メニューとして表示する文字列「ヘルプ(H)」を指定する。 # underlineオプションに、「H」に下線を引くため、「H」は文字列「ヘルプ(H)」の5番目なので、「4」を設定。 menu.add_cascade(menu=menuHelp, label='ヘルプ(H)', underline=4) # (2)menuHelpにコマンド「Webサイトを開く(W)」を追加 menuHelp.add_command(label='Webサイトを開く(W)', underline=10, command=self.menuHelpOpenWeb) # (3)区切り線(セパレーター)を表示するコード menuHelp.add_separator() # menuHelpにコマンド「バージョン情報(V)」を追加 menuHelp.add_command(label='バージョン情報(V)', underline=8, command=self.menuHelpVersion) root['menu'] = menu # (4)「Webサイトを開く(W)」メニューの処理 def menuHelpOpenWeb(self): #変数sを宣言し、そこにクラス名「TextEdit」を入れる webbrowser.open( 'https://info.nikkeibp.co.jp/media/NSW') # バージョン情報メニューの処理 def menuHelpVersion(self): #変数sを宣言し、そこにクラス名「TextEdit」を入れる s = self.__class__.__name__ #バージョン番号(0.01)、年月日、改行(\n) s += ' Version 0.01(2021/03/10)\n' #著作権表記 s += ' ©2021 Hideo Harada\n' #Pythonのシステム情報 s += 'with Python ' + sys.version #変数sに格納された文字列をメッセージボックスに表示する messagebox.showinfo( self.__class__.__name__, s) # def menuFileExit(self): root.destroy() # def menuHelpExit(self): root.destroy() # 「root」root = Tk()TextEdit(root)# root.mainloopの開始root.mainloop()リスト7(TextEdit06.py)の実行結果「ヘルプ(H)」メニューに「Webサイトを開く(W)」が表示されました。「Webサイトを開く(W)」をクリックすると、「日経BP」の「日経ソフトウエア」のページが表示されました。大成功!!