Tkinterを使用して、GUIにログを表示させるためのテストをしていたところ、理解ができない点がありましたので質問させていただきます。
実装させたいこと
Textウインドウに、文字列"test_log"を0.1秒ごとにリアルタイムで表示させたい。
不明点
ボタンをクリックし、log_test関数が実行され、text.insert()とtime.sleep()を使用して、0.1秒毎に文字が表示されると思いましたが
数秒待機した後に、まとめて"test_log"が表示されてしまいます。
0.1秒毎に文字を表示させる為の方法がわかりません。
実行環境
Python 3.8.0
tkinter 8.6
余談
ログ表示を、テキストウインドウに挿入し、”ログが流れてる風”に実装していますが、他にも方法があるのではと思っています。
テキストウインドウを使用した理由として、テキストウインドウの枠組み(デザイン)でログを表示させたかったためです。
現在のテキストウインドウですと、ユーザー側での文字の削除や、文字の入力ができてしまいます。
もし、入力,削除を不可能にし、文字だけを流す方法があれば教えていただけると助かります。
python
1# -*- coding:utf-8 -*- 2 3import sys 4import time 5import numpy 6import tkinter 7from tkinter import font 8 9window = tkinter.Tk() #windowインスタンス生成 10window.title("Tkinter Test") #ウィンドウタイトル設定 11window.geometry("700x500") #ウインドウ生成 12window.resizable(0,0) 13 14font = font.Font(family='Helvetica', size=20, weight='bold') 15 16#----------------------------------------------------------------------------------- 17 18def log_test(): 19 for i in numpy.arange(1.0,100,1.0): 20 text.insert(i , "test_log\n") 21 time.sleep(0.1) 22 23text = tkinter.Text(window, height=13, width=500) 24text.pack() 25 26button = tkinter.Button(window, text="log",command = log_test) 27button.pack() 28 29window.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。