Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何取消tkinter中正在运行的脚本

如何取消tkinter中正在运行的脚本
EN

Stack Overflow用户
提问于 2017-02-16 06:39:48
回答 2查看 1K关注 0票数 0

我在试着为我的覆盆子派做个替身。摄影用的干涉仪。我已经用tkinter创建了一个GUI,但是我无法找到取消正在运行的脚本的方法,因为当脚本运行时,所有的按钮都会被阻塞。可能是不可能的,因为我的脚本包含循环(因为我在range()中).我一直在尝试".after“方法,但是这个方法只是停止脚本而没有取消它。谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-16 17:44:31

您可以尝试使用线程或多进程。您可以参考this post来了解更多有关它的信息。另外,如果您只想停止脚本的运行,可以从终端向程序发送SIGKILL信号(命令是killall Python -9),或者在程序中添加一个调用sys.exit()的按钮

票数 2
EN

Stack Overflow用户

发布于 2017-02-17 07:47:44

代码语言:javascript
运行
AI代码解释
复制
from Tkinter import *

类示例:

代码语言:javascript
运行
AI代码解释
复制
def __init__(self, master):

    self.etfilm = Label(root,width=12, font=('arial narrow', 14, 'normal'),fg="white", bg="green")
    self.etfilm.grid(row=0, column=0,columnspan=1, padx=3, pady=2, sticky=NSEW)
    self.etstatus = Label(root,width=12, font=('arial narrow', 14, 'normal'),bg="yellow")
    self.etstatus.grid(row=0, column=1,columnspan=1, padx=3, pady=2, sticky=NSEW)
    self.textBox = Text(root,height= 1,width=2, relief=SUNKEN, font=('arial', 18, 'normal'),)
    self.textBox.grid(row=0, column=2, ipadx=13, padx=0, sticky=NSEW)
    self.botshoot = Button(root, width=18, font=('arial narrow', 30, 'normal'), text="START ", activebackground="#00dfdf")
    self.botshoot.grid(row=4, rowspan=2, column=0,columnspan=3,ipady=15,pady=1, sticky=NSEW)
    self.botshoot.configure(command=self.start)
    self.botkam = Button(root,width=10, font=('arial', 24, 'normal'), text="VIDEO SETTINGS", activebackground="#00dfdf")
    self.botkam.grid(row=6, rowspan=3, column=0,columnspan=2, pady=1, sticky=NSEW)
    self.botkamStop = Button(root,width=3, font=('arial', 24, 'normal'), text="STOP", activebackground="#00dfdf")
    self.botkamStop.grid(row=6, rowspan=3, column=2, pady=1, sticky=NSEW)
    self.botSelf = Button(root,width=10, font=('arial', 24, 'normal'), text="ACTIVATE SELFTIMER", activebackground="#00dfdf")
    self.botSelf.grid(row=9, rowspan=3, column=0,columnspan=2, pady=1, sticky=NSEW)
    self.botSelf1 = Button(root,width=3, font=('arial', 24, 'normal'), text="STOP", activebackground="#00dfdf")
    self.botSelf1.grid(row=9, rowspan=3, column=2, pady=1, sticky=NSEW)       
    self.botConf = Button(root,heigh=2, font=('arial', 18, 'normal'), text="CONFIGURE", activebackground="red")
    self.botConf.grid(row=12, rowspan=3, column=0,columnspan=1, pady=1, sticky=NSEW)
    self.botStop = Button(root,heigh=2, font=('arial', 18, 'normal'), text="STOP/RESET", activebackground="red")
    self.botStop.grid(row=12, rowspan=3, column=1,columnspan=2, pady=1, sticky=NSEW)
    self.botStop.configure(state=DISABLED,command=self.stop)

def start(self):
    self.count = 0
    self.cancel_id = None
    self.botConf.configure(state=DISABLED)
    self.botshoot.configure(state=DISABLED)
    self.botStop.configure(state=NORMAL)
    self.counter()

def counter(self):
    self.textBox.delete("1.0", END)
    if self.count < 10:
        self.count += 1
        self.textBox.insert(END, str(self.count)+'\n\n')
        self.cancel_id = self.textBox.after(1000, self.counter)

        root.update_idletasks()
        print(self.count)
def stop(self):
    if self.cancel_id is not None:
        self.textBox.after_cancel(self.cancel_id)
        self.cancel_id = None
        self.textBox.insert(END, 0)
        self.textBox.delete("1.0", END)
        self.botConf.configure(state=NORMAL)
        self.botshoot.configure(state=NORMAL)

root=Tk()示例(根) root.mainloop()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42277018

复制
相关文章
[Python基础08]列表和循环操作
如果在某些情况下,我们要定义一个1~100的列表,是一件特别麻烦的事情,手工编码就会变得非常的繁琐,此时,我们可以使用第一种方式来进行列表的构建
周小董
2022/04/12
1.1K0
SharePoint 2010 新列表模板列表
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117742.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
7180
SharePoint 2010 新列表模板列表
SharePoint2010新特性:InfoPath定义创建列表的界面
在SharePoint2007的时候,自定义的列表可以使用CAML修改其展示页面,但是对于创建列表的页面,不容易自定义。现在在SharePoint2010中,增强了InfoPath Form Services,我们可以使用InfoPath Designer来快速设置自定义列表的修改和展示页面。
深蓝studyzy
2022/06/16
7210
SharePoint2010新特性:InfoPath定义创建列表的界面
【Python】列表 List ⑦ ( 列表遍历 | 使用 while 循环遍历列表 | 使用 for 循环遍历列表 | while 循环 与 for 循环对比 )
将 列表 容器 中的数据元素 , 依次逐个取出进行处理的操作 , 称为 列表的遍历 ;
韩曙亮
2023/10/11
9900
18. 再说循环~列表和循环的高级操作
在前面的课程中,我们已经学习了循环和函数的基本操作,这节内容主要针对循环和函数在项目使用过程中的一些更加有使用价值的操作进行分析和讲解
大牧莫邪
2018/08/27
1.2K0
SharePoint—用REST方式访问列表
古时的风筝
2018/01/08
2K0
SharePoint—用REST方式访问列表
python3.2列表操作总结
list操作:快速创建list、新增item、删除item、重新赋值item、颠倒item顺序、检索item
py3study
2020/01/09
6170
列表,for循环相关.
#!/usr/bin/env python # -*- coding:utf-8 -*- # 1.简述解释型语言和编译型语言的区别? """ 1.解释型语言:Python,PHP,Ruby. 特点是一行一行的解释,一行一行的传输给计算机,报错行前面可以执行. 2.编译型语言:C,C++,Java,C#,Go. 特点是一次性把语言编译成文件,报错则不能编译,编译好的文件一定可以运行. """ # 2.列举你了解的Python的数据类型? """ 1.int:整型,数字 2.str:字符串 3.bool:布
py3study
2020/01/16
1.3K0
[python]列表的操作
magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician) for magician in magicians: print(magician.title()+",that was a great trick!") print("I can't wait to see your next trick," +magician.title()+".\n") print("thank you,ever
py3study
2020/01/17
8080
操作列表
只需几行代码,循环能够对列表的每个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表。
清菡
2020/12/02
1.3K0
操作列表
0428(字典,列表,循环)
该字典应包含键first_name 、last_name 、age 和city 。通过循环录入3个学生信息,存储到列表中, 并使用循环完成每个人具体信息的打印
py3study
2020/01/16
1.6K0
【HTML】HTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )
列表 由于其 整齐 , 整洁 , 有序 的特征 , 类似于表格 , 但是其 组合的自由程度高于表格 , 经常用来进行布局 ;
韩曙亮
2023/03/30
3K0
【HTML】HTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )
「学习笔记」循环、列表
continue:终止本轮循环并开始下一轮循环(开始下一轮之前会先看循环条件是否满足,满足了才执行)
py3study
2020/01/21
7300
小程序循环列表删除当前选中列表的方法
需求:点击解绑按钮的时候,会删除当前所点击的列表. 点击试驾按钮的时候,左侧的图标会变成按钮一样的颜色。
王小婷
2019/01/28
2.4K0
小程序循环列表删除当前选中列表的方法
html 有序列表、无序列表、自定义列表
HTML有一个特殊元素,用于创建ordered lists(有序列表), 或数字编号列表。 有序列表以<ol>元素开始,并包含一个或多个<li>元素。 例如:
Devops海洋的渔夫
2019/05/31
4.2K0
Python 的 map、列表推导、循环
发现map最快,map返回的是迭代器,如果变成list则花的时间与循环差不多,其次是列表推导,最后是循环来写。
py3study
2020/01/08
2.2K0
Python 的 map、列表推导、循环
SharePoint中的列表(List) 与Content Type 之一
Windows SharePoint Services (WSS)通过列表和content type实现了协作的数据模式, 这两个都是用基于XML定义的schema来定义的, schema要么是在运行时通过用户自定义创建出来的, 要么是在features文件夹中的文件系统中的XML文件中. 这些基于XML的文件是用WSS-specific的语言写成的, 也就是Collaborative Application Markup Language (CAML). 当你使用CAML开发WSS类型定义(比如说site column, content types, 和site template)的时候, 那你就在创建用户可以在他们自己的collaborative application中使用的provisioning component. 当你通过WSS用户界面创建site columns, content types, list template的时候, 你就创建了scope范围仅在一个单独站点的自定义内容.
全栈程序员站长
2022/07/04
1K0
列表常用操作
'''列表的方法 l.index() l.count() l.copy() l.insert() l.append() l.extend() l.pop() l.remove() l.clear() l.sort() l.reverse() ''' l = [1, 2, 'h', [3, 4, 'H']] print(len(l)) l1 = l.index('h', 2
汪凡
2018/05/29
6070
python列表操作
9.4 获取开始索引和结束索引之间的数据组成的列表(包含开始索引,不包含结束索引)
不止于python
2023/09/05
1900
python列表操作
forEach循环实现卡片列表
jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html lang="en"> <head> <% String path = request.getRequestURI(); Strin
王小婷
2019/05/06
4.4K0
forEach循环实现卡片列表

相似问题

SharePoint列表预填充

11

SharePoint列表中的自动编号列

90

SharePoint列表中具有链接到项目的自动编号列

37

SharePoint列表自动增量自定义索引

12

特定Sharepoint列表的自定义操作菜单

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文