|
30鱼币
from tkinter import *
from tkinter import ttk
from threading import Thread
import socket
import time
def callback(text):
if text == '开始':
display.set('停止')
but1['text']= display.get()
main()
elif text == '停止':
display.set('开始')
but1['text']= display.get()
def main():
print('before')
time.sleep(10)
print('after')
root = Tk()
root.resizable(False, False)
root.geometry('300x300')
display = StringVar()
display.set('开始')
but1 = ttk.Button(root, text=display.get() , command=lambda:callback(display.get()))
but1.pack()
关于tk按钮,有上边一段程序,想要实现的效果是,点开始,按钮变成停止,程序开始运行,程序是长时间运行的,用main()函数模拟,再点按钮,停止程序,现在的问题是点了开始,主程序如果放在callback函数下运行,要等到运行结束后,按钮才会刷新为停止字样,整个窗口也会出现未响应,如何解决,一般这种需求都是怎么实现的,大神能给个更科学的框架就最好了。 |
|