为什么线程没有结束

时间:2019-02-27 12:44:57

标签: python-3.x tkinter raspberry-pi

我正在尝试制作一个与Raspberry pi上的USB rfid阅读器进行交互的应用程序。 看来解决方案正在使用trheading模块(否则,数据输入会导致功能异常) 经过几篇文章后,我制作了一个可以运行的应用程序……这是第一次。之后,出现一条消息错误,提示“线程只能启动一次” ...因此,解释是该线程不会自然结束...为什么?

import time
import sys
import os
from tkinter import *
from tkinter.ttk import *
import threading


def activa_fil(self):
    print ('activant fil')
    fil.start()

def prova2():
    print('hola')
    print(Control.get())
    print(NumCorr.get())
    print(time.strftime("%H:%M:%S"))
    DisplayCorr.config(text=NumCorr.get())
    Llistacorr.insert(0, (Control.get(),NumCorr.get(), time.strftime("%H:%M:%S")))
    marc.contador +=1
    Contador.config (text=marc.contador)
    print(marc.contador)
    file = open("prova.txt", "a")
    file.write(Control.get())
    file.write(NumCorr.get())
    file.write (time.strftime("%H:%M:%S"))
    file.write('\n')
    file.close()
    NumCorr.after(500, NumCorr.delete(0,END))

def tick():
    time_string = time.strftime("%H:%M:%S")
    Hora.config(text=time_string)
    Hora.after(200, tick)

def canvia_focus(self):
    NumCorr.focus()

fil=threading.Timer(0.5, prova2)


marc = Tk()
marc.geometry('480x320')
marc.bind_all(''<'Key-Return'>'', activa_fil)


marc.contador =0

Control = Combobox(marc)
Control['values']=('sortida','can cuias','can campanya','papiol','sortida papiol', 'can olivero', 'ullastrell', 'coll olesa','pla fideuer','aeri', 'arribada')
Control.config(font="helvetica 30", )
Control.grid(column='0', row='0', columnspan='2')

Llistacorr = Listbox(marc)
Llistacorr.config(font='arial')
Llistacorr.grid_propagate(0)
Llistacorr.grid(column='0', row='1', rowspan='3')

DisplayCorr=Label(marc, font='Arial 10')
DisplayCorr.grid(column='1', row='1')

NumCorr = Entry(marc)
NumCorr.config(font='helvetica 6')
Control.bind('<<ComboboxSelected>>', canvia_focus)
NumCorr.grid(column='0', row='4', columnspan='2')

Contador=Label(marc, font='arial 30')
Contador.grid(column='1', row='2')

Hora=Label(marc, font='arial 30')
Hora.grid(column='1', row='3')
tick()

marc.mainloop()

0 个答案:

没有答案