【Python】実行引数をGUIで与えるクラス

Python
田中太郎
田中太郎

Pythonスクリプトを実行するときに実行引数をGUIで与えます

仕様

a = main(<引数名のリスト>)
main.run()

でGUIが立ち上がります。

各エントリーボックスに入力して「Run」をクリックするとコマンドラインに表示されます

「*」リスクがついている引数名は必須入力でエントリーボックスに入力しないと「Run]が動きません

gui_arg.py
import re
import tkinter as tk

class main:
    def __init__(self, texts):
        self.texts = texts
        self.app = tk.Tk()
        self.app.title("App Title")
        self.button = tk.Button(
            self.app, command=self.get_func, text="Run")
        self.button.grid(column=0, row=0)

        self.entry = {i: "" for i in texts}
        self.label = {i: "" for i in texts}
        for row, text in enumerate(texts, 1):
            self.label[text] = tk.Label(self.app, text=text)
            self.label[text].grid(column=0, row=row)
            self.entry[text] = tk.Entry(self.app)
            self.entry[text].grid(column=1, row=row)

    def get_func(self):
        result = []
        for text in self.texts:
            if self.entry[text].get() == "":
                if re.search(r"^\*", text) is not None:
                    return
            result.append(self.entry[text].get())

        for i in result:
            print(i)
        self.app.destroy()
        
    def run(self):
        self.app.mainloop()

if __name__ == "__main__":
    text = ["*hoge", "*fuga", "piyo"]
    a = main(text)
    a.run()
実行結果

GUIが立ち上がります

各エントリーボックスに値を入力して「Run」をクリックします

A
BB
CCC

まとめ

スクリプトを作成してもCUIに拒否反応を起こす方もいるので、GUIで実行できるように今回のクラスを作成しました

コメント

タイトルとURLをコピーしました