使用按钮停止工作功能(Python,Tkinter)

时间:2017-04-04 13:58:38

标签: python-3.x tkinter

我和Tkinter有点关系。我有一段代码不断从Thalmic的Myo Armband接收原始EMG数据,并将该数据(加上手势的名称)写入csv文件。我设计了一个小的tkinter界面,使它看起来更加用户友好。 我需要的是编写一个能够停止以前开始录制功能的功能。 另外我的标签有问题,它显示了csv文件中的行数,但这是另一个问题。 这是代码:

from gesture_classificator import MyoRaw
import csv
import tkinter
import tkinter.messagebox
import sys


root = tkinter.Tk()
root.title("Recording data")
m = MyoRaw(sys.argv[1] if len(sys.argv) >= 2 else None)

v = tkinter.StringVar()
entry = tkinter.Entry(root, textvariable=v)
entry.grid(row=0, column=0) 
v.set("")


def process_emg(emg, times):
    name = v.get()
    with open('own_test.csv', 'a+') as file:
        writing = csv.writer(file)
        writing.writerow(emg+(name,))


def show_row_count():
    with open('own_test.csv', 'r') as return_me_the_row_count:
        reading = csv.reader(return_me_the_row_count)
        data = list(reading)
        row_count = len(data)
        return row_count


def start_recording():
    m.add_emg_handler(process_emg)
    m.connect()


def stop_recording():
    ???

B1 = tkinter.Button(root, text="Start the recording", command=start_recording)
B2 = tkinter.Button(root, text="Stop the recording", command=stop_recording)
rows_number = tkinter.Label(root, text=show_row_count)
rows_number.config(text=show_row_count)
B1.grid(row=1, column=0)
B2.grid(row=1, column=1)
rows_number.grid(row=0, column=1)
root.mainloop()

try:
    while True:
        m.run(1)
except SystemExit:
    pass
finally:
    m.disconnect()

1 个答案:

答案 0 :(得分:1)

根据MyoRaw代码,您可能会喜欢函数MyoRaw.disconnect(),您可以这样使用:

def stop_recording():
  m.disconnect()

在这种情况下,您可以更轻松,更快速地查看文档和/或您正在使用的框架的代码。