こんにちは!、ミナピピン(@python_mllover)です!
今回はPythonのGUIツール作成用ライブラリとして有名なTkinterを使用してGUIツールを作る際にスクロールするテキストボックスを作成する方法について紹介したいと思います。
<これまでのGUIツール系関連記事>
関連記事:【Python/tkinter】GUIツールにファイル選択処理を実装する
関連記事:【Python】Pyinstallerでpyファイルを配布用に.exe化する
tkinterのUIにログ出力ボックスを付け足す
from tkinter import messagebox import tkinter from tkinter import * from tkinter import ttk from tkinter import filedialog import os import datetime def writeToLog(msg): numlines = int(log.index('end - 1 line').split('.')[0]) log['state'] = 'normal' #if numlines==24: # #log.delete(1.0, 2.0) if log.index('end-1c')!='1.0': log.insert('end', '\n') log.insert('end', msg) log['state'] = 'disabled' def calc_(): for i in range(100): writeToLog(str(i)) if __name__ == '__main__': # ウィンドウを作成 root = tkinter.Tk() root.title("ツール名") # アプリの名前 root.geometry("550x600") # アプリの画面サイズ # Frame1の作成 frame1 = ttk.Frame(root, padding=10) frame1.grid() # # 検索ボタンの作成 refer_button = ttk.Button(frame1, text=u'出力ボタン', command=calc_) refer_button.grid(row=3, column=1) log = Text(root, state='disabled',borderwidth=5, width=70, height=30, wrap='none', padx=10,pady=10) ys = ttk.Scrollbar(root, orient = 'vertical', command = log.yview) log['yscrollcommand'] = ys.set log.insert('end', "Lorem ipsum...\n...\n...") log.grid(row=4, column=0) ys.grid(column = 1, row = 4, sticky = 'ns') # ウィンドウを動かす root.mainloop()
<実行結果>
参考:https://tkdocs.com/tutorial/text.html
参考:https://qiita.com/Colonel_GTU/items/01e3a7924ff82937a378
関連記事:【Python】tkinteでテキストファイルを読み込んで中身をテキストボックスに出力するGUIツールを作ってみた
コメント
[…] 関連記事:【Python】Tkinterでスクロールするテキストボックスにログを出力するGUIツールを作る […]