Qt初探索之python系列:PyQt5 and pyside2(一)

前言

因为实验室项目涉及到上位机控制界面程序制作,所以这周对上位机方面的知识进行了学习,特此记录。

在 Windows 下,GUI 解决方案比较多,基于C++的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的有 WinForm、WPF,基于Java的有AWT、Swing,基于Pascal的有Delphi,还有国内初露头角的 aardio;如果你有Web开发经验,也可以基于Webkit或Chromium将网页转换为桌面程序。

在学习之前,先了解一下上位机编写:https://www.cnblogs.com/Mculover666/p/9125684.html

在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的:

  • USB转串口 —— 上位机和下位机通过USB转串口连接线直接相连进行数据交互;
  • 串口转WIFI(ESP8266) —— 上位机和下位机基于TCP/IP协议通过WIFI传输数据;
  • 串口转蓝牙(HC-06)—— 不多用;

上位机软软件开发主要包括以下两种:

1、Windows上位机(EXE可执行程序)

在Windows上,最早用VB语言开发,后来由于C++的发展,采用MFC开发,近几年,微软发布了基于.NET框架的面向对象语言C#,更加稳定安全,再配合微软强大的VS进行开发,效率奇高;

另外,如果想要在Linux上跨平台运行,可以选用Qt;
如果想要更加丰富好看的数据显示界面,可以选用Labview开发;

2、Android上位机(APP)

在Android操作系统上,主要采用Java语言,使用WIFI或者蓝牙基于TCP/IP协议传输数据,利用Android Studio开发;

接下来,记录一下QT的学习路程。QT的开发可以使用python语言和c++,使用python开发的话,一般使用Pyqt5和pyside2两个库;使用c++的话,一般直接在QT Creator中开发即可。

pyqt5和pyside2都是python中开发GUI的库,pyqt5是第三方机构开发的,而pyside2是qt官方开发的,两者的主要区别是所用的开源协议不同。python中还有tkinter wx…这些图形界面库,但主流还是pyqt。

一、环境配置

在学习之前,需要先把环境配置好。采用的PyCharm2017和Python3.6。

因为pip默认访问的网站网速较慢,这里换成了国内清华大学的镜像源,每三分钟更新一次。足够使用了,而且速度很快。

pycharm的settings找到编译器点击+安装pyqt5 pyqt5-tools pyuic三个库,其中pyqt5-tools涵盖了Qt-Designer工具,pyuic可以将ui文件转换成.py文件,并且包含了动态加载ui的方法。

在external tools中配置工具,将t-Designer,pyuic作为第三方工具配置好。

配置时遇到了designer打不开的问题,参考以下博客得以解决:
https://blog.csdn.net/alps1/article/details/105793406

配置过程部分参考了该博客:https://blog.csdn.net/qq_38048756/article/details/107301809

二、PyQt5

配置好pycharm pyqt5 pyqt5-tools pyui后,就可以进行项目开发了。
学习过程主要参考了以下在线学习网站:
python某些语法忘记的话可以参考菜鸟教程或者官方的文档快速复习。

pyqt5的学习网站参考了:
1、PyQt5中文教程:http://code.py40.com/pyqt5/
2、PyQt5官网指导手册:https://www.riverbankcomputing.com/static/Docs/PyQt5/index.html
3、gitbook的中文翻译,同中文教程一样:https://maicss.gitbooks.io/pyqt5/content/hello_world.html
4、白月黑羽教Python的图像界面内容,B站有对应的课程:https://maicss.gitbooks.io/pyqt5/content/hello_world.html

三、pyside2

pyside2 直接 pip install 安装该包,使用方法同 pyqt 类似,在导入包时直接将 import PyQt5.xxx --> import pyside2.xxx,当然有些不同,可以百度很容易替换,其中动态加载便不一样,pyside2包含r动态加载Designe设计的ui界面文件(xml语言描述文件),但是pyqt5没有包含该功能,需要加载导入pyuic这个包进行函数功能的调用。

写在最后:
QT学习资料纷繁杂乱,个人觉得还是官方手册靠谱些,强烈推荐,因为众多教程都是根据官方的案例改编的,还是直接溯源学习吧。
放两个链接:
1、Qt-Designer手册:https://doc.qt.io/qt-5/qtdesigner-manual.html
2、Qt 官网:https://www.qt.io/

以上就是python写界面的内容了,最后可以实现一个网络调试窗口、LCD温度显示界面、计算器和游戏俄罗斯方块这些内容,算是部分了解。在实际用途中需要什么再详细学习对应内容。


下一期记录C++开发的内容。

你可能感兴趣的:(上位机编程)