覚えると便利!Tkinter の小技
とにかく扱いやすくて「プログラミングのハードルを下げてくれる」と評判のPython。使う人がどんどん増えているプログラミング言語ですが、そのメリットをしっかり発揮させるためには、多彩な『ライブラリ(よく使うデータ・機能・関数などをまとめたファイル)』とその用途を把握しておく必要があります。
『Tkinter』は、PythonでGPU(グラフィック・ユーザー・インターフェース=操作対象や選択項目をアイコンやイラストで表示するユーザー・インターフェース)を構築して操作するための標準ライブラリです。今回は、そのTkinterでつまづきやすいポイントを解消する小技を紹介します!
Tkinterの特徴とメリット
その前に、まずはTkinterについて簡単に説明しておきましょう。
Tkinterは、スクリプト言語『Tcl』用のGUIツールキット『Tk』を、Pythonで使えるようにしたモジュールです。名前もそのまま「Tkinter=Tkのインターフェース」を指しています。
そして『GUIツールキット』とは、GPUを構成する様々なパーツの集まりのことです。つまりTkinterを使えば、PythonでGPUを簡単に構築できるのです!
とても便利なライブラリなだけに様々な入門記事が書かれていますが、初心者がつまづきやすい部分についてはあまり触れられていない傾向があります。
そこで、以下にそれらを解決するための小技を紹介します!
メニューに点線が表示されてしまう
『Tkinter』では、基本的なメニューを簡単に作ることができます。ですが、「なぜかメニューに点線が表示されてしまう」といったトラブルがあるようです。
これは、以下の記述で解消できます。
tearoffオプションを指定して 「False」または「0」に設定する
filemenu = Menu(menubar, tearoff=0)
tearoffオプションを指定しておかないと、端末によっては点線が表示されてしまうだけでなく、下階層のメニューがメニューバーから離れて表示されてしまうなどのトラブルも起きるようです。これらを防ぐために、きちんと指定しておきましょう!
Entry(テキストボックス)のサイズを調整する
検索ボックス・入力フォーム・ログインフォームなどに幅広く応用できるEntry。それだけに「デフォルトの大きさ(幅)から変更したい!」と思うことも多いはず。Entryの大きさ(幅)は下記のコードで指定できます。
EditBox = Tkinter.Entry(width= **)
**=任意の数字(ピクセル数) とする。
ごく基本的なテクニックですが、きちんと指定しておくことでウィジェットの見た目を整えられます。
Entry(テキストボックス)にあらかじめ指定した文言を表示させる
さらに、Entryのボックス内にお好みの文言を表示させることもできます。
通販サイトの検索ボックスなどでよく見かける仕様で、例えば楽天トップの検索ボックスには「キーワードから探す」と表示されていますし、ZOZOTOWNの検索ボックスには「何かお探しですか?」と表示されています。
ユーザビリティを高めるこの表示は、下記のコードで実現できます。
insert(Tkinter.END,“表示させる文言”)
Checkbutton(チェックボックス)のチェックボタンに未チェックがあったらエラーメッセージを表示させる
最後にご紹介するのは、チェックボックスを構築できるCheckbuttonの小技です。
・チェックボックスを作る
・チェックボックスの項目にそれぞれ名前を付ける
といった基本はたくさん紹介されていますが、実際のサイトでよく見る「未チェックの項目があったらエラーメッセージを表示させる」方法はあまり知られていません。これは、下記のコードで実現できます。
if Val1.get() == True:
text += “項目1チェック済\n”
else:
text += “項目1が未チェックです\n”
チェック済なら「True」で指定したメッセージが表示されて、未チェックなら「else」で指定したメッセージが表示されます。空欄にされがちな「.get()」ですが、これを活用すればチェック済/未チェックを判定した上でユーザーにやりなおしを促せます!
いかがでしたか? 『Tkinter』を使う上で「もっとこうしたい!」「ここを解消できたらいいのに」といったプラスアルファのテクニックをご紹介しました。これらの小技を覚えて『Tkinter』をさらに活用しましょう!
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
デジタルツインと i-Constructionについての ホワイトペーパー配布中!
❶デジタルツインの定義
❷デジタルツインが建設業界にもたらすもの
❸i-Constructionの概要
❹i-Constructionのトップランナー施策