Я делаю небольшой скрипт, который читает файл и показывает на экране то, что вы прочитали; если файл изменен, метка будет изменена.Ну, приложение отлично работает для меня как скрипт, но когда я запускаю его как поток в моей основной программе, оно работает нормально, но метки не пишут их.Вы знаете, что это может быть?Спасибо
import _thread
from tkinter import *
from time import sleep
def AccionRecomendada(name, read):
fin = False
while not fin:
archivo = open(name,"r")
lineas = archivo.readlines()
if len(lineas) > 1:
recomendada = lineas[-2].replace("\n","")
elif len(lineas) == 1:
recomendada = lineas[0]
else:
recomendada = "Esperando"
read.set(recomendada)
sleep(0.1)
def AccionRead(name, read, dato):
fin = False
while not fin:
archivo = open(name,"r")
lineas = archivo.readlines()
if len(lineas) > 1:
estrategia = lineas[:-2]
for i in range(len(estrategia)):
estrategia[i] = estrategia[i].replace("\n","")
temp = estrategia[dato].split(" ")
if len(temp) >1:
cadena1 = f"{temp[0].ljust(0)}"
cadena2 = f"{temp[1].rjust(32)}"
cadena = cadena1 + cadena2
elif len(temp[0]) == 0:
cadena = ""
else:
cadena = ""
else:
cadena = ""
read.set(cadena)
#print(name, cadena)
sleep(0.1)
def EstrategiaGUI(name, mesa):
# ----------------------------Creamos GUI para cargar la imagen----------------
root = Tk()
# ----------------------------Atributos siempre encima-------------------------
root.wm_attributes("-topmost", 1)
# --------------------------------Título----------------------------------------
root.title(mesa)
# -----------------------------Variables----------------------------------------
readA=StringVar()
readB=StringVar()
readC=StringVar()
readD=StringVar()
readE=StringVar()
readF=StringVar()
readG=StringVar()
readH=StringVar()
readA.set(_thread.start_new_thread(AccionRecomendada,(name, readA)))
readB.set(_thread.start_new_thread(AccionRead,(name, readB, 0)))
readC.set(_thread.start_new_thread(AccionRead,(name, readC, 1)))
readD.set(_thread.start_new_thread(AccionRead,(name, readD, 2)))
readE.set(_thread.start_new_thread(AccionRead,(name, readE, 3)))
readF.set(_thread.start_new_thread(AccionRead,(name, readF, 4)))
readG.set(_thread.start_new_thread(AccionRead,(name, readG, 5)))
# ------------------------------- Frames----------------------------------------
# --------------------------------Labels----------------------------------------
miFrame = Frame(root)
miFrame.grid(row = 0, column = 0, columnspan = 2)
miFrame.config(bd = 2)
miFrame.config(relief = "groove")
# --------------------------------miFrame--------------------------------------
LabelA=Label(miFrame, textvariable=readA)
LabelA.grid(row=0,column=0, columnspan = 2)
LabelA.config(anchor="center",background="#45B39D",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelB=Label(miFrame, textvariable=readB)
LabelB.grid(row=1,column=0, columnspan = 2)
LabelB.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelC=Label(miFrame, textvariable=readC)
LabelC.grid(row=2,column=0, columnspan = 2)
LabelC.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelD=Label(miFrame, textvariable=readD)
LabelD.grid(row=3,column=0, columnspan = 2)
LabelD.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelE=Label(miFrame, textvariable=readE)
LabelE.grid(row=4,column=0, columnspan = 2)
LabelE.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelF=Label(miFrame, textvariable=readF)
LabelF.grid(row=5,column=0, columnspan = 2)
LabelF.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
LabelG=Label(miFrame, textvariable=readG)
LabelG.grid(row=6,column=0, columnspan = 2)
LabelG.config(anchor="w",background="#F1948A",justify="center",width="20",height="1",fg="black",
cursor="hand2",font=("helvetica", "14", "bold"))
# ---------------------------------Fin GUI ------------------------------------
root.mainloop()