10:25著者:クジラ飛行机Pythonプログラミング言語Pythonには、標準でWindows/macOS/Linuxのデスクトップ向けアプリを作成するTkinterというライブラリが備わっている。このライブラリを使うと、ボタンやエディタなどGUIを持つアプリを作ることができる。今回は、デスクトップアプリの開発方法を紹介する。作成例として、肥満度判定を行うBMI計算ツールを作ってみよう。ここで作成するのは身長と体重を入力すると、BMI値と肥満度を表示するツールだ。肥満度計算を行うデスクトップアプリを作ってみようデスクトップアプリとは?ところで、『デスクトップアプリ』とは何だろうか。WindowsやmacOSなどパソコン上で動作するアプリのことだ。昨今、アプリと言えば、スマートフォンを対象にしたアプリを指すことが増えた。そこで、スマホアプリに対して、パソコンで動作するアプリを、『デスクトップアプリ』と呼ぶ。Pythonでデスクトップアプリを作成するには、いくつかライブラリがある。Pythonに標準的に同梱されている『Tkinter』、クロスプラットフォーム対応で人気がある『Kivy』、wxWidgetsというツールキットを利用した『wxPython』、Qtというツールキットを利用した『PyQt』などです。ここでは、手軽に扱えるライブラリ『Tkinter』の使い方を紹介しよう。Tkinterが使えるか確認してみようなお、『Tkinter』は、Python標準付属のライブラリであるが、内部的には『Tcl/Tk』というGUIライブラリを利用しており、Tkinterを使うにはTcl/Tkが必要になる。Pythonをインストールすると、最初からTcl/Tkのライブラリもインストールされるはずだ。いえ、インストールの際に何かしらの理由でTck/Tkが入っていないという可能性もあるので、動くかどうかを確認してみよう。本連載ではPythonのディストリビューションの一つ『Anaconda』がインストールされていることを念頭に置いている。インストールしていない人は、こちらを参考にインストールしよう。Prompt]を起動しよう。macOSではターミナル.appを起動しよう。以下のコマンドを実行してみよう。tkinter正しくインストールが行われている場合、以下のように、Tcl/Tkのウィンドウが表示される。WindowsPythonは、Windows/macOS/Linuxに対応しているが、Tkinterを使ったプログラムはだいたい同じように動かすことができる。macOSでこのテストプログラムを実行したところ、ボタンの文字が切れてしまっていた。マウスでウィンドウを大きく調整することで、Windowsで実行するのと同じように表示された。複数OSに対応する場合は、レイアウトに余裕を持たせる必要があるだろう。macOSまた、もし、エラーが出てウィンドウが出ない場合には、Tcl/Tkがインストールされていない場合がある。Pythonのインストールをやり直すか、ActiveStateからダウンロードできる。簡単なTkinterのプログラムそれでは、一番簡単なTkinterのプログラムを作ってみよう。以下は、Tkinterのウィンドウを表示するだけの極めて基本的なプログラムだ。(*3)win.mainloop()上記のプログラムを「hello_tk.py」という名前で保存しよう。World!」というタイトルのウィンドウが表示される。Tkinterで一番簡単なプログラムプログラムを確認してみよう。(*1)ではtkinterのライブラリを取り込む。Python3.xでは「tkinter」と全部小文字で書くのが正式なライブラリ名だ。Python2では「Tkinter」と一文字目だけ大文字だった。ネット上にあるTkinterの資料の中には、Python2のもので古い資料であることが多いので注意しよう。プログラムの(*2)の部分では、ウィンドウを作成しタイトルとサイズを指定している。(*3)の部分では、ウィンドウがマウス操作などに対応できるよう、メインループを実行する。Tkinterを利用したデスクトップアプリでは、この一行が重要になる。書き忘れないようにしよう。ラベルとテキストボックスとボタンを使ってみようウィンドウを利用するプログラムでは、テキストボックスやラベルをウィンドウ上に配置することで、プログラムの見た目を構成していく。以下は、ラベル(Label)とテキストボックス(Entry)とボタン(Button)を活用する例だ。テキストボックスに名前を書き込んでOKボタンを押すと、名前入りの挨拶を表示するという簡単なプログラムを作ってみよう。以下のプログラムを「gui.py」という名前で保存しよう。gui.py」を実行すると、以下の表にプログラムが実行される。ウィンドウ上にラベルやテキストボックスを配置する例プログラムを確認してみよう。(*1)の部分では、ウィンドウを作成する。(*2)の部分では、ラベルやテキストボックスを作成する。tk.Label(...)や、tk.Buttonと書くとラベルやボタンなどの部品が作成される。pack()と記述すると、作成した部品をウィンドウ上に配置することができる。(*3)ではボタンを押した時の処理を記述している。ここでは、(*2)で作成したテキストボックスの内容を取得して、メッセージボックスに「**さん、こんにちは!」のように表示するようにしている。最後(*4)の部分では、ボタンを作成しウィンドウにボタンを配置する。クリックした時に、ok_click関数が実行されるように指定した。このように、ウィンドウを使ったプログラムでは、実直に処理が上から下に流れるのではなく、ボタンを押したらどうなる、キーボードを押したどうなる、という流れでプログラムを構築していく。通常のプログラムよりも複雑になりがちなので、整理して記述する習慣をつけておこう。肥満度判定プログラムを作ろうそれでは、基本的なTkinterの使い方が分かったところで肥満度判定プログラムを作ってみよう。bmi.py」と実行しよう。以下のようにプログラムが実行される。そこで、身長と体重を書き込んで「計算」ボタンをクリックすると、肥満度とBMIの値が表示される。肥満度判定プログラムOKボタンを押すと結果が表示されるプログラムを確認してみよう。プログラムの(*1)の部分で、計算ボタンを押した時の処理を記述している。ここでは、テキストボックスに入力した身長と体重の値を取得しBMIを計算する。計算結果をラベルに表示する。(*2)の部分ではウィンドウを作成し、(*3)では部品を作成し、ウィンドウ上に配置する。ここでは、身長と体重について、それぞれラベルとテキストボックスを作成し、さらに、結果を表示するラベルと計算ボタンを作成する。計算ボタンがクリックしたら、calc_bmiを呼び出すように指定した。まとめ以上、今回はTkinterを利用して、デスクトップアプリを使う方法を紹介した。ここで紹介したように、Pythonを使えば、ボタンやテキストボックスを利用するデスクトップアプリが簡単に作成できる。した自分ツール作成に便利だ。見積もりツールや定型処理を実行するランチャーなど、アイデア次第でいろいろ作ることができるだろう。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。テキスト音楽「サクラ」など。共通点は○○だったAI時代に「必要とされる人材」とは??」4月1日より...71%の人が仕事を辞めたいと思った経験あり。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。システムやソフトウェアの開発に携わるエンジニアに向けた最新情報など仕事に役立つ話題などを提供していきます。Corporation。