在使用mqtt收到的每条消息上更改QtLabel

时间:2018-06-30 02:03:20

标签: python pyqt4 mqtt

我试图更改我的qt标签并在每次收到该标签时进行更新 数据来自esp8266。我正在寻找建议来做到这一点

def initGui(self):

    self.labelMCdata = QtGui.QLabel("%")

def on_message(client, userdata, msg):

    global x
    x = str(msg.payload)
    print(msg.topic+" "+ x ) 

我不知道是否可以将self.labelMCdata.setText附加到 on_message方法,因为每次我调用initGUI函数时总会出现错误。

我正在使用命令self.initGui()来调用该函数,但是由于未在on_message上定义该函数,因此无法继续。当我尝试在on_message方法上添加另一个参数时,它说只有3个可用,我不知道它是否仅限于此。

1 个答案:

答案 0 :(得分:0)

如果on_message方法位于qt gui的同一类中,则可以直接访问标签:

def on_message(client, userdata, msg):

    global x
    x = str(msg.payload)
    self.ui.labelMCdata.settext("my message here!")
    print(msg.topic+" "+ x )