鱼C论坛

 找回密码
 立即注册
查看: 2411|回复: 1

tk图形化编程的按钮问题

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-13 20:20:31 From FishC Mobile | 显示全部楼层
求助 顶下 我想到 多线程或许 能解决 但应该有更好的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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