Buenos dias, estoy realizando pruebas con un sensor de temperatura en arduino, estoy utilizando la libreria PySerial para mostrar los datos en python. Pero estos datos son muy planos. Y quiero mostrarlos en una interfas grafica de PyQt5, pero no lo he logrado.En el campo ldt_sensor debo mostrar el dato leído por el sensor. Si alguien me pudiera dicir que estoy haciendo mal le agradeceria. Este es el codigo en PyQt5. Gracias.
import sys
import serial
import time
import pylab
from PyQt5.QtWidgets import (QApplication, QWidget,QToolTip,
QPushButton, QMessageBox, QLabel, QLineEdit)
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication
serie = serial.Serial('COM3', 9600, timeout = 1)
class Ejemplo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('Arial', 10))
self.setToolTip('Es un mensaje de prueba <b>QWidget</b> widget')
# En este ejemplo, creamos un botón de salida. Al hacer clic en el botón, la aplicación termina.
qbtn = QPushButton('Salir', self)
qbtn.clicked.connect(QCoreApplication.instance().quit)
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
#Colocamos un mensaje en el boton
btn = QPushButton('Boton', self)
btn.setToolTip('Boton de prueba <b>QPushButton</b> widget')
btn.resize(btn.sizeHint())
btn.move(50, 80)
#Creamos un Label para escribir testo
lbl = QLabel('Prueba label 1', self)
lbl.resize(lbl.sizeHint())
lbl.move(45, 120)
#creamos un cajon para ingresar datos
ldt = QLineEdit('Prueba Texto 1', self)
ldt.resize(ldt.sizeHint())
ldt.move(120, 120)
#Segundo label
lbl_sensor = QLabel('Prueba Sensor', self)
lbl_sensor.resize(lbl_sensor.sizeHint())
lbl_sensor.move(45, 170)
#segundo cajon
def sensor(): # Funcion para mostrar los datos en la interfas grafica
while True:
dato = serie.readline()# comunicacion serial.
ldt_sensor = QLineEdit(self) # caja donde se muestra el dato enviado por el sensor.
ldt_sensor.resize(ldt_sensor.sizeHint())
ldt_sensor.move(120, 165)
ldt_sensor = dato
#definimos la ventana medidas, Titulo de la ventana, colocamos un icono.
self.setGeometry(300, 300, 300, 220)# X y Y situan la ventana metodo setGeometry
self.setWindowTitle("Mostrar icono en la ventana") #muestra el titulo en la ventana
self.setWindowIcon(QIcon('F:\PyQt\ventana_icono\pyserial.png'))#muestra un icono en la parte izquierda de la ventana
self.show()
#definimos una clase para crear un mensaje de confirmacion si queremos salir
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Mensaje',
"Deseas Salir de la aplicacion?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__=='__main__':
app = QApplication(sys.argv)
ex = Ejemplo()
sys.exit(app.exec_())
MOD: etiqueta GeSHi.