【サンプルあり】Pythonのtkinterを使ってGUIアプリを作る

2019年11月10日

昨日のブログで今作っている途中のアプリをチラ見せしました。
今のところの出来栄えを、披露したいと思います。

スポンサーリンク

何で書くのか

そう、Pythonです。
で、tkinterというやつを使っています。

tkinterとはなんぞやというと。

tkinter パッケージ (“Tk インタフェース”) は、 Tk GUI ツールキットに対する標準の Python インタフェースです。
Tk と tkinter はほとんどの Unix プラットフォームの他、 Windows システム上でも利用できます。

ということらしいです。

tkinter

そう、クロスプラットフォームなものを作りたかったのです。
しかもPythonにデフォルトで入っているらしいので、こちらを使うことにしました。

クロスプラットフォーム

ソフトウェアやハードウェアを、異なるOSやハードウェアの環境でも共通して利用できること。  

コードはこちら

まあ初めて使うので、Google先生にあれこれ訪ねながら、こんな感じになりました。

import tkinter
from tkinter import ttk, scrolledtext

# メインウィンドウ
main_window = tkinter.Tk()
main_window.title('mo22comi')
main_window.geometry('600x830')

# メインフレーム
main_frame = ttk.Frame(main_window)
main_frame.grid(column=0, row=0, sticky=tkinter.NSEW, padx=5, pady=10)

text_frame = ttk.Frame(main_window)
text_frame.grid(column=0, row=1, sticky=tkinter.NSEW, padx=5, pady=10)

# ログフレーム
log_frame = ttk.Frame(main_window)
log_frame.grid(column=0, row=2, sticky=tkinter.NSEW, padx=5, pady=10)

# ウィジェット作成
file_label = ttk.Label(main_frame, text='データ')
file_box = ttk.Entry(main_frame)
file_btn = ttk.Button(main_frame, text='参照')
entry_label = ttk.Label(main_frame, text='エントリー')
entry_box = ttk.Entry(main_frame)

text_label = ttk.Label(text_frame, text='テキスト')
text_box = scrolledtext.ScrolledText(text_frame)

log_label = ttk.Label(log_frame, text='ログ')
log_box = scrolledtext.ScrolledText(log_frame)

# ウィジェットの配置
file_label.grid(column=0, row=0, pady=10, padx=5)
file_box.grid(column=1, row=0, sticky=tkinter.EW, padx=5)
file_btn.grid(column=2, row=0, padx=5)

entry_label.grid(column=0, row=1)
entry_box.grid(column=1, row=1, sticky=tkinter.EW, pady=10, padx=5)

text_label.grid(column=0, row=0, sticky=tkinter.NW, padx=5)
text_box.grid(column=0, row=1, pady=5, padx=5)

log_label.grid(column=0, row=0, sticky=tkinter.NW, padx=5)
log_box.grid(column=0, row=1, pady=10, padx=5)

# 配置設定
main_window.columnconfigure(0, weight=1)
main_window.rowconfigure(0, weight=1)
main_frame.columnconfigure(1, weight=1)

main_window.mainloop()

で、実行した画面がこちら。

データ参照して、あれこれしてログをウィンドウ下部に出力するイメージです。

PyCharmで書いているんですが、VisualStudioと違ってグラフィカルにボタンとかを配置できないので、ちょっと面倒かなと思っていたんですが割合スッと配置できました。

あとは大きさとか調整して実行ボタンとか配置して、ボタン押したときの動作をちゃちゃっと作ればなんとなくいい感じになりそうです。
実際の動作は、以前作ったものとかを流用すればいけそうなので。

そう思っていた時期が私にもありました

でも、試しにウィンドウを動かしてみると。

世に出回っているアプリは、やはり完成度が高いのだということを痛感しました。

助けてー、ドラ○もーーーーん

↓↓↓ブログランキングに参加しています↓↓↓

にほんブログ村 PC家電ブログへ

スポンサーリンク