PythonでGUIを作成する際には、リアルタイムのprintデバッグが難しいことがあります。そのため、メインウィンドウの他にログウィンドウを立ち上げると便利です。

以下に、Tkinterを使用してログウィンドウを作成するサンプルコードを示します。

import sys
import tkinter as tk
from tkinter import scrolledtext

TEXT_COLORS = {
    'MESSAGE': 'black',
    'INPUT': 'blue',
    'OUTPUT': 'green',
    'ERROR': 'red',
    'DEBUG': 'yellow'
}

class IOLogFrame(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master)
        master.title("Log Window")
        self.txt = scrolledtext.ScrolledText(master)
        self.txt.pack(fill=tk.BOTH, expand=1)
        for key in TEXT_COLORS:
            self.txt.tag_config(key, foreground=TEXT_COLORS[key])

    def print(self, str, state='MESSAGE'):
        self.txt.insert(tk.END, str+'\\n', state)
        self.txt.see(tk.END)

    def write(self, str, state='MESSAGE'):
        self.txt.insert(tk.END, str+'\\n', state)
        self.txt.see(tk.END)

    def flush(self):
        pass

class IOLogWindow(tk.Toplevel):
    def __init__(self, master):
        tk.Toplevel.__init__(self, master)
        io = IOLogFrame(self)
        io.print("Message")
        io.print("--ERROR--", 'ERROR')
        io.print("--INPUT--", 'INPUT')
        io.print("--OUTPUT--", 'OUTPUT')
        io.print("--DEBUG--", 'DEBUG')

if __name__ == '__main__':
    win = tk.Tk()
    io=IOLogWindow(win)
    win.mainloop()

このコードでは、IOLogFrameクラスでログウィンドウを作成し、printメソッドでログを表示します。ログの種類によって色を変えることも可能です。

このようにPythonでGUIを作成する際には、ログ表示のためのウィンドウを作成することで、デバッグやユーザーへの情報提供を効果的に行うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です