有没有办法让tkinter在打开时立即执行命令?

2024-10-01 02:23:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在测试一个简单的想法,以锻炼计划的想法为例。我对python非常陌生,所以这更像是一个测试。我想做的是打开一个有训练的窗口(只是一个tkinter标签),然后被动地在后台运行一个语音识别命令来捕捉说“下一步”的人。我不想让别人告诉我如何让其他的东西更有效率,因为我知道这是不好的。你知道吗

我想要一个解决方案,使命令SpeechRecognition1在显示"5 pressups"标签时被动运行。有什么办法吗?你知道吗

from tkinter import *
import sys
import speech_recognition as sr

def NextWorkout1():
    workout1.destroy()
    Workout2()

def Workout1():
    global workout1

    workout1 = Tk()

    workout1.geometry("300x44")
    workout1.configure(background="lightblue")
    workout1.resizable(0,0)
    workout1.title("Pressups")

    insLabel = Label(workout1, text="5 pressups", fg="red", bg="lightblue", font="Arial 25 bold")
    insLabel.pack()

    workout1.mainloop()


def Workout2():
    global workout2

    workout2 = Tk()
    workout2.geometry("300x50")
    workout2.configure(background="lightblue")
    workout2.resizable(0,0)
    workout2.title("Starjumps")

    insLabel = Label(workout2, text="15 starjumps", fg="red", bg="lightblue", font="Arial 25 bold")
    insLabel.pack()

    workout2.mainloop()

def SpeechRecognition1():
    r = sr.Recognizer()

    with sr.Microphone() as source:
        audio = r.listen(source)

    for i in range(1):
        command = (r.recognize_google(audio))

        if command == "next":
            NextWorkout1()
        else:
            print("hi")

def SpeechRecognition2():
    global WorkoutNumber

    WorkoutNumber = 0
    r = sr.Recognizer()

    with sr.Microphone() as source:
        audio = r.listen(source)

    for i in range(1):
        command = (r.recognize_google(audio))

        if command == "next":
            NextWorkout2()

        else:
            print("hi")

Workout1()

Tags: import命令sourcetkinterdefas标签global
1条回答
网友
1楼 · 发布于 2024-10-01 02:23:44

将after\u idle函数与您的函数一起用作回调函数

按此顺序

from threading import Thread

workout1 = Tk()

thread = Thread(target = SpeechRecognition1)
workout1.after_idle(thread.start)

workout1.mainloop()

相关问题 更多 >