我用tkinter寫出了一個Text框和一個按鈕,Text框的內容是一個變數(output),而按鈕按下後可以成功更變變數output的內容,但是我無法讓text框的內容更新,網路上找到的方法都失敗
import os
import bs4
from tkinter import *
run = '0'
def main():
...
...
...
output = response #用監控看確定output會更新
global run #第二次執行(按按鈕)才更新text內容
if run == '0': #第一次
run = '1'
else: #第二次(更新text)
T.update()#沒用
T.update_idletasks()#也是沒用
#設定tkinter視窗
root = Tk()
root.geometry("500x800")
root.attributes("-topmost", 1)
main()#第一次執行
button = Button(root, text="Refresh", command=main)#按鈕執行
button.pack()
S = Scrollbar(root)
T = Text(root, height=4, width=100)
S.pack(side=RIGHT, fill=Y)
T.pack(side=LEFT, fill=Y)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)
T.tag_configure('in', font=('Microsoft JhengHei UI', 10))
T.insert(END, output, 'in')
T.config(state=DISABLED)
root.mainloop()
import os
from tkinter import *
run = '0'
root = Tk()
root.geometry("500x800")
root.attributes("-topmost", 1)
button = Button(root, text="Refresh")
button.pack()
S = Scrollbar(root)
T = Text(root, height=4, width=100)
S.pack(side=RIGHT, fill=Y)
T.pack(side=LEFT, fill=Y)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)
T.tag_configure('in', font=('Microsoft JhengHei UI', 10))
T.insert(END, "output", 'in')
T.config(state=DISABLED) # 把T的內容變成唯讀
def clickBtn(event):
T.config(state=NORMAL)
T.delete(1.0, END)
T.insert(END, "BTN be clicked", 'in')
T.config(state=DISABLED)
button.bind("<Button>", clickBtn)
root.mainloop()
你把Text設成唯讀,能改才怪...
所以, 你的output跟response是什麼?