Python TkinterでGUIアプリを作る(2024.10.31)
扉の写真は、アパートのMac環境である。写っているのは以下のものたち。
M1 Pro MacBook Pro 14"
M2 iPad Pro 11"
MX keys Mini for Mac
POP Mouse
Elgato Stream Deck
iPad ProもM4の時代となり、今週は、M4搭載のiMac、Mac mini、MacBook Proが発表され、Macファンの間では盛り上がっているようだが、私は、M4 MacBook Airが出るまでは大人しくしている予定?である。
最近欲しいアプリができたので、自作することにした。その、欲しいものとは、見やすい(文字の大きな)日付付きデジタル時計と「ある計算」を効率的に行うためのアプリである。
まず、デジタル時計の動作中写真を示そう。なかなか見やすい。文字の大きさやフォントの種類は、ソースコードを書き換えれば自由に変えられる。
このデジタル時計のコードは短いので一応載せておく。
import time
import tkinter as tk
def update():
clock_time['text'] = time.strftime('%H:%M')
clock_date['text'] = time.strftime('%a %d %b %Y')
root.after(1000, update)
root = tk.Tk()
root.title('tk_clock')
root.geometry('180x90')
clock_time = tk.Label(root, font=('Consolas', 40, 'bold'))
clock_date = tk.Label(root, font=('Consolas', 20, 'bold'))
clock_time.pack()
clock_date.pack()
update()
root.mainloop()
次にある計算をする’アプリの動作中写真を示そう。
このアプリは、Navy色の部分の数字を書き換えて左上のボタンを押すと、右側に示すようなグラフを出力してくれるものである。これのコードは複雑なので、紹介は省略する。
さて、プログラムを作って動くようになったまではいいが、どうやって普段使いしやすくするかが考えどころである。
そのためにMacには、Automatorという便利な機能がある。色々な機能がありそうだが、私が使っている(使える)のは、Shell scriptを実行するアプリ(app)を作る機能だけである。しかしながら、Pythonの実行はShell scriptで行えるため、これを記載したものをAutomatorでapp化すれば比較的簡単に使えるようになる。Automatorで作成したappは、Stream Deckに取り込めばボタン一発で起動することができる。あるいはFinder内でダブルクリックしてもOK。
これで、便利に使うことができる。
私は、色々な計算をしたり、設計図の原図となるスケッチを作るのに、Pythonを利用することが多いが、通常はTerminalを開いてそこからPythonを実行している。今回はTkinterをいじってみて、結構自由に使えそうな気がしてきたので、今後汎用性のあるものはGUIアプリ化にも取り組んでみようか。。。と思う次第である。ただし、実際にGUIを使ったプログラムを組んでみて、比較的簡単に動くようになるのだが、色々なケースを試していると思わぬ挙動になったりで、一般性を持って使えるようにするにはかなり時間がかかることが判明している。それらを解決することでスキルが上がるという一面もあるので、気長にやろうと思う。
以 上