我正在尝试决定一种技术,用于开发一个可以与串行端口接口的桌面应用程序。我研究了python,看起来基于控制台的应用程序并不困难- http://pyserial.sourceforge.net/,我还研究了PyQt,它可以完成我项目中的图形用户界面部分。
但是有可能在PyQt中包含像PySerial这样的第三方模块吗?
发布于 2012-07-30 10:01:26
PyQt和pyserial在一起玩得很好(实际上,我在我的一个应用程序中使用了它们)。pyserial网站上的示例大多是类似控制台的简单示例,但您没有理由不能从任何pyserial对象中获取数据并在PyQt中使用它们。例如,您可以获取通过串行端口接收的数据,并将其推送到QByteArray或NumPy数组或任何您喜欢的类似数据中。
有几点需要注意:如果使用Serial.readline(),它会一直阻塞,直到换行符(\n)。这可能对你的图形用户界面不好。如果您必须使用readline()而不是read(),我建议您将与pyserial相关的活动放在单独的线程中。如何做到这一点取决于你,但我建议使用Qt的内置线程。然后,您可以在线程内将数据转换为Qt类型等。有关threading in pyqt的更多信息。
编辑:几乎忘了。如果有人关心,你也可以使用PyQt编写控制台应用程序。只需使用QCoreApplication而不是QApplication。然而,我不太确定为什么人们会在python中这样做,除非您真的喜欢Qt的数据类型……在这种情况下,您可以使用PyQt和pyserial来编写纯控制台应用程序:D
https://stackoverflow.com/questions/11676874
复制相似问题