Pythonいろいろ

python便利!

python で GUI を作るときの テンプレ ート( tkinter 使用)

 

今回の記事は、PythonGUIを作るとき、tkinterでいちいちプログラムを書くのがめんどくさいというところで、テンプレートを作成してみました。

 

 

 

ユーザーに入力してもらってそれに対する処理をするというときは、アイコンの準備とこれのMessageboxの部分(黄色で強調箇所)を必要な処理に変更すればいいだけです。

 

ちなみにこんな画面が表示されます。

f:id:chacha07:20210711090008p:plain

 

 

 

 では、こちらがテンプレートです。

アイコンを用意せずにとりあえず実行してみたいという方は「root.iconbitmap(default=logo)」のところを「#」でコメントアウトしてください。

import tkinter
from tkinter import messagebox
import sys
import os


def main_proc():
    global root
    
    #Retreive InputForm Data
    textdata=txt.get("1.0","end")
    
    #None Data 
    if  len(textdata)==1:
        messagebox.showinfo("Invalid Data", "入力してください。")
        return
    
    #Change your processing
    messagebox.showinfo("title", textdata)
    
    root.destroy()
    sys.exit()

def temp_path(relative_path):
    try:
        #Retrieve Temp Path
        base_path = sys._MEIPASS
    except Exception:
        #Retrieve Current Path Then Error 
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)


logo=temp_path('test_icon.ico')
root=tkinter.Tk()

#Display Size
root.geometry('300x300')

#Title Bar
root.title('test')

#Icon
root.iconbitmap(default=logo)

#Label
lb=tkinter.Label(root,text="入力してください。")
lb.pack(pady=20)

#InputForm
txt=tkinter.Text(root,width=30,height=10)
txt.pack(padx=10,pady=10)

#Exec Button
btn=tkinter.Button(root,height=1,width=10,text="検索",command=main_proc)
btn.pack(padx=10,pady=10)

root.mainloop()
root.quit()

 

アイコンの作成の仕方は以下の記事をご覧ください。

various-python.hatenablog.com

 

 

temp_path関数については、アイコンのための処理です。気になる方は以下の記事を確認ください。

various-python.hatenablog.com

 

にほんブログ村 IT技術ブログへ
にほんブログ村