hola a todos, estoy teniendo problemas para que una etiqueta actualice su texto en función del contenido de una variable que está en otro script de python.
la variable sería un contador para cuando se ejecuta una función.
hasta ahora la etiqueta en la ventana inicia con un texto y cuando se ejecuta el botón para que se inicie la función , esta cambia su texto y toma el valor por defecto de la variable, pero no toma el incremento
El código del programa gui_tkinter.py
el código del programa que tiene el contador
agradecería si me dieran una mano para poder lograr que la etiqueta se actualice
gracias...
la variable sería un contador para cuando se ejecuta una función.
hasta ahora la etiqueta en la ventana inicia con un texto y cuando se ejecuta el botón para que se inicie la función , esta cambia su texto y toma el valor por defecto de la variable, pero no toma el incremento
El código del programa gui_tkinter.py
Código:
import sys
import threading
import tkinter as tk
from tkinter import *
from recognize_google_ import *
class ventana():
def __init__(self):
self.root = tk.Tk()
self.root.title(" ")
self.root.geometry("250x100")
self.root.resizable(False, False)
self.texto = tk.StringVar()
self.texto.set("hola mundo")
self.lblMensaje = tk.Label(self.root, textvariable=self.texto).pack()
self.btnMiboton = tk.Button(self.root, text="inicio", command=self.inicio, background="dark green", activebackground="green").pack(pady=2, padx=1)
self.btnMiboton2 = tk.Button(self.root, text="salir", command=sys.exit, background="dark red", activebackground="red").pack(pady=2, padx=1)
self.root.mainloop()
def changeText(self):
self.texto.set("nuevo mensaje %s" % cont)
def inicio(self):
t0 = threading.Thread(target=main, daemon=True)
t0.start()
self.changeText()
if __name__ == "__main__":
ventana()
el código del programa que tiene el contador
Código:
import sys
import pyttsx3
import speech_recognition as sr
from fouier_ import *
listener = sr.Recognizer()
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('rate', 165)
# engine.setProperty('voice', voices[2].id) #
engine.setProperty('voice', 'spanish-latin-am+f2') # linux
cont = 0
def talk(text):
engine.say(text)
engine.runAndWait()
def listen():
try:
with sr.Microphone() as source:
print("Escuchando...")
listener.adjust_for_ambient_noise(source, duration=0.5)
audio = listener.listen(source)
except:
pass
return audio
def recognize_audio(audio):
print("Procesando...")
rec = listener.recognize_google(audio, language='es-AR')
rec = rec.lower()
# print(rec)
return rec
def main():
global cont
while True:
try:
response = recognize_audio(listen())
if "cambiar" in response:
sonido()
cont = cont+1
elif "cerrar" in response or "apagar" in response:
break
talk(response)
print(cont)
except:
pass
sys.exit()
if __name__ == "__main__":
main()
agradecería si me dieran una mano para poder lograr que la etiqueta se actualice
gracias...