【发布时间】:2020-10-07 10:32:39
【问题描述】:
大家好
我目前正在尝试使用 Python 中的 MQTT 将 IoT 通信集成到 KAAIoT,该 Python 发送从电机驱动器的保持寄存器读取的数据。该脚本在带有 Tkinter GUI 的 Raspberry pi 上运行以进行一些控制,但现在我想通过 IoT 接口监视和控制一些事情。
我测试了一个提供here 的示例脚本,并设法发送和接收一些垃圾数据,酷豆,但在尝试将其集成到应用程序时出现问题。
尝试 1:将代码实现到主类中。
结果:连接已建立,但由于 main 中的循环,GUI 无法加载
代码示例Here
尝试 2:在线程中运行“主”代码。
结果:错误
文件“/usr/lib/python3.7/signal.py”,第 47 行,在信号中 handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler)) ValueError:信号仅在主线程中起作用
所以如果我理解正确,信号模块需要 Tkinter 用于显示 GUI 的主线程,但如果它使用它,它会抑制 GUI。主线程的使用在Signals and Threads下here也有说明。
问题:是否可以以某种方式同时集成 GUI 和 MQTT?任何修复或可行的替代方案将不胜感激。
【问题讨论】:
-
我通常会添加一个,但由于需要额外的 KAAIoT 设置而跳过了它。我在尝试 1 下添加了一个基本(但仍然很长)的脚本链接
标签: python tkinter signals mqtt