Tkinterを使ってGUI作成

 


TkinterGUIを始めてみよう

まず初めに

環境はUbuntu18.04、Python3.6で行います。

経緯

 この記事はPythonのTkiniterというGUIを簡単に作るためのライブラリを自分のためにメモ程度にまとめたものです。

Tkinterって?

Tkinter - Wikipediaによると、

 Tkinter は Python からGUIを構築・操作するための標準ライブラリ(ウィジェット・ツールキット)である

と書かれているように、GUIを作成するためのライブラリです。

この記事では簡単なボタンとウィンドウメッセージを表示するプログラムを作ります。

とりあえずHello,World

  以下のプログラムはウィンドウを作成するプログラムです。

import tkinter
window=tkinter.Tk()
window.title(u"Software Title")
label=tkinter.Label(text=u"hello,world.")
label.pack()
window.mainloop()
解説もどき
  • window=tkinter.Tk() ウィンドウオブジェクトの生成。設計図をもとに実体を作った感じ。
  • window.title() ウィンドウのタイトルを設定
  • label=tkinter.Label(text="hogehoge") Labelという設計図をもとにlabelを作成
  • label.pack() ウィンドウ上にlabelをpack、そのまま詰める。
  • window.mainloop() イベントの待機。これがないと一瞬でウィンドウが消える。
実行結果

f:id:rig_rx:20190525080013p:plain

図1 実行結果

 本来はラベルの文字列の長さによってウィンドウがサイズを自動で合わせるので、見にくい場合はgeometry()などをつかうといいかもしれません。

ボタンがあるGUIを作成

 本題のボタンのあるGUIを作成します。ボタンはButton()を使います。

 ボタンのラベルはtext、押された時の処理はcommand、で指定できます。

プログラム

    import tkinter
    import sys
    window=tkinter.Tk()
    window.title('Software Title')
    label=tkinter.Label(text='hello,world.')
    button=tkinter.Button(text='quit',command=sys.exit)
    label.pack()
    button.pack()
    window.mainloop()
実行結果

f:id:rig_rx:20190525090043p:plain

図2 実行結果

 quitボタンを押すと、sys.exitが呼び出され、実行中のmainloop()を終了してプログラムが終わるという流れです。