今回の記事はPythonのTkinterの使い方をUI付きのデスクトップアプリ作成を通して紹介します。Pythonは使用したことがありますが、Tkinterを使用したことがない方や全くの未経験の方でもわかるように記事を記載していくので是非参考にしてみてください。
Tkinterの環境構築
Tkinterの環境構築といっても非常に簡単です。公式サイトからTkinterをダウンロードするのみとなっております。
私の場合はMacですので、下記brewコマンドで実施します。
brew install python-tk
もしも下記で作成していくPythonソースを実行した際に「not found 〜」などのエラーが発生した場合、上記のTkinterのインストールが失敗していきます。その場合はバージョンを指定して、インストールしてみましょう。
brew install python-tk@3.10
次にTkinterを使ってみましょう。
Tkinterでアプリをビルド
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
root.mainloop()
上記をコマンドプロンプトやターミナルで実行します。
python3 main.py
すると下記のようなデスクトップアプリが表示されます。
Tkinterの使い方
続いて、下記のように画面パーツの表示や操作をTkinterを使って行う方法をご紹介していきます。
- Tkinterでラベルを表示する方法
- Tkinterでテキストラベルを表示する方法
- Tkinterでテキストラベルから入力文字を取得する方法
- Tkinterでボタンを表示する方法
- Tkinterでボタンにアクションをつける方法
- Tkinterでチェックボックスを表示する方法
- Tkinterでチェックボックスのチェックを判定する方法
Tkinterでラベルを表示する方法
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#ラベル
Static1 = tkinter.Label(text=u'test')
Static1.pack()
root.mainloop()
Tkinterでテキストラベルを表示する方法
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#テキストラベル
EditBox = tkinter.Entry()
EditBox.insert(tkinter.END,"挿入する文字列") #文字を最初から挿入する場合
EditBox.pack()
root.mainloop()
Tkinterでテキストラベルから入力文字を取得する方法
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#テキストラベル
EditBox = tkinter.Entry()
EditBox.insert(tkinter.END,"挿入する文字列") #文字を最初から挿入する場合
EditBox.pack()
#テキストラベルから文字を取得する
value = EditBox.get()
root.mainloop()
Tkinterでボタン表示とボタンにアクションをつける方法
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
# ボタン押下時の関数(テキストラベルの文字を削除)
def showInput(event):
print("クリック")
#ボタン
Button = tkinter.Button(text=u'アクション', width=50)
Button.bind("<Button-1>",showInput)
Button.pack()
root.mainloop()
Tkinterでチェックボックスを表示とチェック判定を行う方法
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#チェックボックス
CheckBox1 = tkinter.Checkbutton(text=u"項目1", variable=tkinter.BooleanVar().set(False))
CheckBox1.pack()
if tkinter.BooleanVar().get() == True:
print("チェックしてる")
print("テキストには" + value + "を入力しています。")
else:
print("チェックしてない")
root.mainloop()
Tkinterで入力情報を出力するサンプルアプリ
最後に上記をまとめた簡単なデスクトップ用のアプリを紹介します。
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import tkinter
root = tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#ラベル
Static1 = tkinter.Label(text=u'test')
Static1.pack()
#テキストラベル
EditBox = tkinter.Entry()
EditBox.insert(tkinter.END,"挿入する文字列") #文字を最初から挿入する場合
EditBox.pack()
#チェックボックス
CheckBox1 = tkinter.Checkbutton(text=u"項目1", variable=tkinter.BooleanVar().set(False))
CheckBox1.pack()
CheckBox2 = tkinter.Checkbutton()
CheckBox2.pack()
# ボタン押下時の関数(テキストラベルの文字を削除)
def showInput(event):
if tkinter.BooleanVar().get() == True:
print("チェックしてる")
print("テキストには" + value + "を入力しています。")
else:
print("チェックしてない")
#テキストラベルから文字を取得する
value = EditBox.get()
print("テキストには" + value + "を入力しています。")
#テキストラベルの中身を削除
EditBox.delete(0, tkinter.END)
#ボタン
Button = tkinter.Button(text=u'アクション', width=50)
Button.bind("<Button-1>",showInput)
Button.pack()
root.mainloop()
テキストラベルやチェックボックスの情報を取得し、出力するデスクトップアプリとなっております。試しにビルドしてみてください。
python3 [ファイル名].py
今回の記事は以上です。他にも多数のPython関連の記事を記載しているので是非参考にサイト内みて行ってください。
コメント