2017-04-04 28 views
0

私はTkinterで少し状況があります。私は、ThalmicのMyo Armbandから生のEMGデータを絶えず受け取って、そのデータ(ジェスチャーの名前に加えて)をcsvファイルに書き込むコードを持っています。私はそれをより使いやすいようにするために小さなtkinterインターフェイスを設計しました。 私が必要とするのは、以前に開始した録音機能を停止する機能を書くことです。。 また、ラベルに問題があります。ラベルには、csvファイルの行数が表示されていますが、別の質問です。ここ はコードです:ボタンで作業中の機能を停止する(Python、Tkinter)

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

MyoRawコードによると、あなたはおそらく、あなたがこのように使用する機能MyoRaw.disconnect()、のようになります

def stop_recording(): 
    m.disconnect() 

このような場合には、簡単かつ迅速になりますあなたが使用しているフレームワークのドキュメンテーションおよび/またはコードをチェックすることができます。

関連する問題