# ========================= # 結果出力用:print結果を取得して、txt保存+GUI表示 # ========================= import io import sys import tkinter as tk from tkinter import ttk from tkinter import scrolledtext # ========================= # print結果を一時的に保存する準備 # ========================= buffer = io.StringIO() sys.stdout = buffer # ================================================== # ここに「結果をprintしている処理」を書く # ================================================== # 例: # print("=== 比較結果 ===") # print(result_df) # print("a 相対誤差 =", gpr_error) # print("b 相対誤差 =", reg_error) # ※すでに上の方で print() しているなら、 # この buffer の開始位置を「printする前」に移動する必要あり # ========================= # print出力を元に戻す # ========================= sys.stdout = sys.__stdout__ # ========================= # bufferの中身を文字列として取得 # ========================= msg = buffer.getvalue() # ========================= # txtファイルにも保存 # ========================= with open("result.txt", "w", encoding="utf-8") as f: f.write(msg) # ========================= # ウィンドウ作成 # ========================= root = tk.Tk() root.geometry("1400x800") root.title("実行結果") # ========================= # タブ全体 # ========================= notebook = ttk.Notebook(root) notebook.pack(fill=tk.BOTH, expand=True) # ========================= # タブ1:実行結果 # ========================= result_frame = ttk.Frame(notebook) notebook.add(result_frame, text="実行結果") result_text = scrolledtext.ScrolledText( result_frame, wrap=tk.NONE, font=("Meiryo", 10) ) result_text.pack(fill=tk.BOTH, expand=True) result_text.insert(tk.END, msg) result_text.configure(state="disabled") # ========================= # 横スクロールバー # ========================= x_scroll = ttk.Scrollbar( result_frame, orient=tk.HORIZONTAL, command=result_text.xview ) x_scroll.pack(side=tk.BOTTOM, fill=tk.X) result_text.configure(xscrollcommand=x_scroll.set) # ========================= # GUI開始 # ========================= root.mainloop()