概要
Python というプログラミング言語にはいろいろなライブラリが付属していますが、その中でも GUI ライブラリとして名高いのが「Tkinter」かと思います。
Python で何か GUI アプリを開発してみたいと一度でも考えたことのある方にとっては、1 度くらい見たことはあるかと思います。
ただ、Tkinter を素のまま使用すると、昔の Windows アプリケーションのようにそっけない GUI でしかアプリを作成することができません。
そこで、今回は素っ気ない Tkinter の UI を劇的に良くすることができる OSS を見つけましたのでご紹介します。
今回ご紹介する OSS は、Python UI ライブラリである Tkinter をカスタマイズすることができる OSS「Custom Tkinter」になります。
それでは中身についてみていきましょう。
目次
特徴
「Custom Tkinter」は、Tkinter に基づく Python UI ライブラリであり、カスタマイズすることが可能でモダンなウィジェットを提供してくれます。
「Custom Tkinter」で作成したウィジェットは通常の Tkinter ウィジェットのように利用でき、組み合わせて使用することもできます。
また、「Custom Tkinter」を使用することで、すべてのデスクトッププラットフォーム(Windows、macOS、Linux)で一貫した UI を提供することができるとのことです。
利用手順
「Custom Tkinter」は pip
よりモジュールをインストールします。
pip3 install customtkinter
なお、「Custom Tkinter」は現在も活発に開発が進められているということなので、以下のコマンドよりできるだけ頻繁に更新することが推奨されています。
pip3 install customtkinter --upgrade
使用感
サンプルプログラムをがあったので、こちらをみてみましょう。
まずは簡単なボタンをアイコンを表示するソースコードを実行してみます。
import customtkinter customtkinter.set_appearance_mode("System") # Modes: system (default), light, dark customtkinter.set_default_color_theme("blue") # Themes: blue (default), dark-blue, green app = customtkinter.CTk() # create CTk window like you do with the Tk window app.geometry("400x240") def button_function(): print("button pressed") # Use CTkButton instead of tkinter Button button = customtkinter.CTkButton(master=app, text="CTkButton", command=button_function) button.place(relx=0.5, rely=0.5, anchor=customtkinter.CENTER) app.mainloop()
上記サンプルコードを実行すると、以下のような画面が表示されます。
他にも、画像付きボタンを作成することができたり、マップ画像を Tkinter と統合することで任意のウィンドウでマップを操作・表示することができるウィジェットも作成することができるとのことでした。
その他にもたくさんの UI を作成することができるので、サンプルフォルダやドキュメントを参考に作成したいウィジェットなどを探してみても良いかもしれませんね。
まとめ
今回は、Python UI ライブラリである Tkinter をカスタマイズすることができる OSS「Custom Tkinter」をご紹介しました。
Python の標準 GUI ライブラリ「Tkinter」だけでは UI が素っ気なくなってしまうのが Python で GUI アプリケーションを作成する際の課題かなと自分は考えていたので、「Custom Tkinter」によってその課題が解消されたなと思っています。
個人的にはデスクトップアプリを作成する際に Python を採用するかというのは少々議論の余地があると思いますが、Python でも綺麗な GUI アプリを作成することができるということが学べたので、とても勉強になりました。
今後 Python で GUI アプリを作成する際には、一度自分もこちらのモジュールを検討しようかと思います。
みなさまもぜひ一度、こちらの「Custom Tkinter」を見てみたり試してみてはいかがでしょうか。
ライセンス
Creative Commons Zero v1.0 Universal