港湾2019 2022-10-25 00:04 采纳率: 71.4%
浏览 17
已结题

python线程问题

用tkinter做了一个GUI窗口,现在我想点击stop按钮停止、或结束 start按钮开启的线程,在GUI窗口不消失的情况下。
请各位帮忙看看怎么实现停止或结束线程的功能。
下面是完整代码

import tkinter as tk
import threading

def I_want_to_stop():
    while True:
        print("我想停下来!")

root = tk.Tk()
root.title('线程练习')
root.geometry('400x200+100+100')

var_Yaddr = tk.StringVar()
tk.Label(root, text='输入1:').place(x=10,y=50)
entry_Yaddr=tk.Entry(root,textvariable=var_Yaddr)
entry_Yaddr.place(x=120,y=50)

var_Maddr = tk.StringVar()
tk.Label(root, text='输入2:').place(x=10,y=90)
entry_Maddr=tk.Entry(root,textvariable=var_Maddr)
entry_Maddr.place(x=120,y=90)

#start按钮功能
def click_start():
    global Yaddr, Maddr
    Yaddr = var_Yaddr.get()
    Maddr = var_Maddr.get()

    t = threading.Thread(target=I_want_to_stop, name='MyLoop')
    t.start()
    btn_start['state'] = tk.DISABLED

#stop按钮功能
def click_stop():
    pass

btn_start = tk.Button(root, text="Start", command=click_start)
btn_start.place(x=150,y=130)

btn_stop = tk.Button(root, text="Stop", command=click_stop)
btn_stop.place(x=200,y=130)

root.mainloop()

img

  • 写回答

1条回答 默认 最新

  • Ko-walski 2022-10-25 08:16
    关注

    加个标志位啊比如flag=False ,在你想停止的位置每次进来判断是否为True,如果是停止,否则继续,然后点击事件里面实现标志位的状态更改flag=True

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程