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.
MOD: etiqueta GeSHi.
Código (python) [Seleccionar]
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.