こんにちは!、ミナピピン(@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ツールを作る […]