2016-04-14 10 views
1

Ich möchte eine GUI erstellen, die mit PyQt erstellt wurde und QLCDNumber enthält, die automatisch auf der Grundlage des Abonnements meines MQTT-Clients aktualisiert wird, der auf einem Pi ausgeführt wird. Ich habe Probleme bei der Integration der beiden Codeabschnitte, die ich brauche. Meine GUI ist unten.Integration von MQTT mit PyQt4

Grundsätzlich wenn das Thema wünschen/Geschwindigkeit aktualisiert Ich möchte das LCD auf der GUI auch aktualisieren.

Vielen Dank im Voraus für die Hilfe!

from PyQt4 import QtGui, QtCore 
import paho.mqtt.client as mqtt 

class Window(QtGui.QMainWindow): 
    def __init__(self): 
     super(Window, self).__init__() 
     self.setGeometry(50,50,500,500) 
     self.setWindowTitle("Think Physics: Technology Wishing Well") 
     self.home() 

    def home(self): 
     mqttLCD = QtGui.QLCDNumber(self) 
     mqttLCD.setNumDigits(1) 
     client.connect('localhost', 1883) 
     self.show() 

    def on_connect(self, client, userdata, rc): 
     print "Connected with result code: " + str(rc) 
     client.subscribe("wishing/speed") 

    def on_message(self, client, userdata, msg): 
     print "Topic: ", msg.topic + '\nMessage: ' + msg.payload 
     mqttLCD.display(msg.payload) 

if __name__ == "__main__": 
    import sys 
    global client = mqtt.Client() 

    app = QtGui.QApplication(sys.argv) 
    GUI = Window() 
    Window.show() 


    client.loop_start() 

    sys.exit(app.exec_()) 

Antwort

0

client.loop_start() kehrt sofort zurück, aber es ist auch sehr wichtig für den Client-Betrieb. Wenn Sie es nach dem client.connect() Anruf dann verschieben, sollte es funktionieren.