我和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()
答案 0 :(得分:1)
根据MyoRaw代码,您可能会喜欢函数MyoRaw.disconnect()
,您可以这样使用:
def stop_recording():
m.disconnect()
在这种情况下,您可以更轻松,更快速地查看文档和/或您正在使用的框架的代码。