業務でTkinterを使用したGUIツールを作成したのですが、ボタンや見た目や色が微妙というフィードバックを頂いたので何とかモダンにできないかと色々と調査した結果、ttkbootstrapを使用するといい感じなったので、今回はttkbootstrapを使用したTkinterのアプリ作成方法について紹介したいと思います。ほかにもいいやり方あるよ~って人はコメントで教えてくれると嬉しいです
ttkbootstrapとは
まず、ttkbootstrapとは、Bootstrapのテーマを使ってttk(Tkinterをよりモダンにするクラス)のウィジェットを設定するためのライブラリです。Bootstrapは、Webアプリケーションの開発によく使用されるオープンソースのCSS、JSフレームワークです。ttkbootstrapを使用することで、tkinterのUIをオシャレにデザインすることができます。
それでは、実際にttkbootstrapを用いたUIデザイン方法を解説します。
まず ttkbootstrapをインストールします。
$ pip install ttkbootstrap
これでインストール完了です、それでは以下で似たようなUIでデフォルトのTkinterの場合
とttkbootstrapを使用した場合とで比較してみます。
デフォルトのtkinterの場合
ドキュメントは以下になります
よくありそうなボタンとログ出力を出すサンプルコードは以下になります。
(今回は見た目の話なので内部の関数部分は省略しています)
import tkinter root = tkinter.Tk() root.geometry("850x450") loglist = tkinter.Listbox(root, height=15, width=60) loglist.place(x=0, y=10) loglist.insert(tkinter.END, f"処理開始") b1 = tkinter.Button(root, text="Submit",width=15) b1.place(x=650,y=5) b2 = tkinter.Button(root, text="Cancel", width=15) b2.place(x=650,y=50) root.mainloop()
<実行結果>
The tkinterって感じの個人で作ったアプリ感がすごいデザインですね
ttkbootstrapを使用した場合
ttkbootstrapの公式ドキュメントは以下になります
https://ttkbootstrap.readthedocs.io/en/version-0.5/overview.html
サンプルコードは以下になります
import ttkbootstrap as ttk from ttkbootstrap.constants import * import tkinter root = ttk.Window(themename="superhero") root.geometry("850x450") loglist = tkinter.Listbox(root, height=15, width=60) loglist.place(x=0, y=10) loglist.insert(tkinter.END, f"処理開始") b1 = ttk.Button(root, text="Submit", bootstyle="success",width=15) b1.place(x=650,y=5) b2 = ttk.Button(root, text="Cancel", bootstyle="info-outline", width=15) b2.place(x=650,y=50) root.mainloop()
<実行結果>
ボタン以外でもbootstrapで良く使うパーツはすべて用意されているので、公式ドキュメントのサンプル子コードを参考にしてみてください
まとめ
ttkbootstrapを使うとbootstrap風のおしゃれなUIを作成することができました
これはwindowsなのでMacとかの互換性はわかりませんが今後はこれで使おうと思います
コメント
[…] 関連記事:【tkinter】ttkbootstrapを使用してGUIをオシャレにする […]
[…] 関連記事:【tkinter】ttkbootstrapを使用してGUIをオシャレにする […]