找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3890|回复: 1

[已回复] tk图形化编程的按钮问题

1

主题

1

帖子

1

积分

贫民

积分
1
ztwang 发表于 2017-2-13 19:46:58 | 显示全部楼层 |阅读模式
from tkinter import *
from tkinter import ttk
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函数下运行,要等到运行结束后,按钮才会刷新为停止字样,整个窗口也会出现未响应,如何解决,一般这种需求都是怎么实现的,大神能给个更科学的框架就最好了。
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-2-14 11:38:01 | 显示全部楼层
用线程吧
python3.4.4, win10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表