Q&A
実現したこと
- Python Tkinter で Text ウェジェットにある任意の文字列を スタートボタンを押すと、先頭行から数秒ごとに行単位で 選択範囲を下へ変更されるようにしたい。
発生している問題
エラーは発生していないが、テキストがされない。
該当のソースコード
import tkinter as tk import re import time root = tk.Tk() root.geometry("200x200") def fun(): root.after(100,run) def run(): text_all = text.get("1.0" , "end") #all=re.findall("\n",text, re.S) #print("findall",all) #textを改行毎にリストに格納 iter = re.finditer("\n",text_all, re.S) n=0 line = [] for i in iter: print(i) line.append(text_all[n:i.start()]) n = i.end() text.focus_set() #0.5秒ごとに一行ずつ選択範囲を変えていきたい for num in range(len(line)): text.see( f"{num+1}.0") if text.tag_ranges("sel") != (): text.tag_remove('sel','sel.first', 'sel.last') text.tag_add('sel', f"{num+1}.0", f"{num+1}.end") print('sel', f"{num+1}.0", f"{num+1}.end") time.sleep(0.2) #ウェジェット↓ btn=tk.Button(root,text="スタート",command=fun) text=tk.Text(root) for i in range(30): text.insert(f"{i+1}.0",f"{i+1} . テキスト\n") #h配置 btn.pack() text.pack() root.mainloop()
試したこと
after メソッドを使って見ましてが、Textの選択がされません。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。