Я довольно новичок в Python, но у меня есть рабочая версия этого в MATLAB, но я пытаюсь заставить кнопки пуска / остановки работать в Python.
Я попытался упростить мой кодопубликовано ниже столько, сколько я думаю, что я могу, но в основном я хочу провести серию звуковых сигналов для фитнес-теста.Существует определенный порядок, в котором должны звучать гудки, чтобы обозначить различные интенсивности упражнений.
Я использовал функции для написания различных типов упражнений (я не включил все это в код ниже, чтобысэкономить место), а затем еще один, чтобы объединить их в нужный протокол.Затем я создал кнопки для запуска и остановки работы протокола.
Единственное, что я хочу включить, это не тот пример, который я привел в то, что я уже пробовал, - это включение таймера.Разделы упражнения имеют переменную длину, но должны соответствовать временному периоду, а не определенному числу итераций.
Я уже пробовал несколько ответов на сайте, самый близкий к моей проблеме, я думаю; Предыдущий ответ Первое решение, опубликованное здесь Майком - SMT работает на моем ПК, оно также очень похоже на то, что я пытаюсь достичь, но я попытался сопоставить его настолько близко, насколько смогу, но кнопка запускавсе еще остается в нажатом состоянии, и кнопка «стоп» прерывает работу.
# Import all modules
import time
import winsound
import tkinter
# Define Global Variables
runTime = 20
numberBlocks = 5
atime = 1
tracker = False
# Define Movement Functions
def walk()
def jog()
def cruise()
def sprint()
def ar()
def rest()
# callback functions
def start():
global numberBlocks, runTime, atime, tracker
tracker = False
t = time.time()
i = 0
while i < numberBlocks - 1 and tracker == False:
while (time.time() - t) < runTime and tracker == False:
if tracker == False and (time.time() - t) < runTime:
walk()
if tracker == False and (time.time() - t) < runTime:
sprint()
if tracker == False and (time.time() - t) < runTime:
ar()
if tracker == False and (time.time() - t) < runTime:
jog()
if tracker == False and (time.time() - t) < runTime:
cruise()
rest()
i += 1
def stop():
global tracker
tracker = True
# run GUI
root = tkinter.Tk()
tracker = False
root.title('LIST')
# create all of the main containers
bottom_center_frame = tkinter.Frame(root)
bottom_center_frame.pack(side="top", fill="x")
# create widgets for the button frame
button_stop = tkinter.Button(bottom_center_frame, text='Stop', command=stop).pack(side="bottom", fill="x")
button_start = tkinter.Button(bottom_center_frame, text='Start', command=start).pack(side="bottom", fill="x")
# loop gui
root.mainloop()
Все сигналы работают нормально, просто происходит сбой, когда я пытаюсь остановить его.