Enviado em 18/05/2021 - 00:40h
Boa noite,
Sou iniciante na area do python, e estou com dificuldade na parte de threading juntamnete com uma interface gui, criada no QT Designer.
conversando com uns amigos me indicaram este forum, pois talvez pudessem me ajudar/esclarecer qual o problema.
Acontece que não entendo muito dessa area, comecei a poucos meses e fiz o seguinte codigo de exemplo:
O codigo acima, incrementa a variavel "a" e adciona o valor dentro de uma label, e dentro de uma linha que por sua vez está dentro de uma tabela. porem estou usando uma threading para executar o loop infinito e não congelar a janela principal. mas rodando o programa eu consigo atualizar somente o valor da label, somente atualiza o valor da tabela quando eu clico nela.
outro problema é que aparece as seguintes mensagens no cmd ao executar o programa:
Se eu deixar somente a label, ele não da os erros acima, porem quando adciono a tabela da erro.
Inseri duas imagens da tela também para tentar ilustrar melhor o que está acontecendo.
Vocês poderiam me ajudar a resolver este problema? desde já muito obrigado.
Sou iniciante na area do python, e estou com dificuldade na parte de threading juntamnete com uma interface gui, criada no QT Designer.
conversando com uns amigos me indicaram este forum, pois talvez pudessem me ajudar/esclarecer qual o problema.
Acontece que não entendo muito dessa area, comecei a poucos meses e fiz o seguinte codigo de exemplo:
from PyQt5 import uic,QtWidgets
from bs4.element import TemplateString
import requests
import time
import threading
def atualiza_dados():
a = 0
while 1:
time.sleep(2)
tela.label_6.setText(str(a))
tela.tabela1.setItem(0, 0, QtWidgets.QTableWidgetItem('Valor de A: '))
tela.tabela1.setItem(0, 1, QtWidgets.QTableWidgetItem(str(a)))
a += 1
app=QtWidgets.QApplication([])
tela=uic.loadUi("tela_monitor.ui")
tela.tabela1.setRowCount(1)
threading.Thread(target=atualiza_dados,daemon=True).start()
tela.show()
app.exec()
O codigo acima, incrementa a variavel "a" e adciona o valor dentro de uma label, e dentro de uma linha que por sua vez está dentro de uma tabela. porem estou usando uma threading para executar o loop infinito e não congelar a janela principal. mas rodando o programa eu consigo atualizar somente o valor da label, somente atualiza o valor da tabela quando eu clico nela.
outro problema é que aparece as seguintes mensagens no cmd ao executar o programa:
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
Se eu deixar somente a label, ele não da os erros acima, porem quando adciono a tabela da erro.
Inseri duas imagens da tela também para tentar ilustrar melhor o que está acontecendo.
Vocês poderiam me ajudar a resolver este problema? desde já muito obrigado.