【Python-BaseSerialPortTool】- 2. PyQt5+qt-designer开发环境搭建

本文详细介绍如何在Deepin Linux环境下搭建PyQt5开发环境,包括安装Python的PyQt5模块、Qt Designer以及将.ui文件转换为Python代码的过程。通过一个示例项目,验证环境配置的正确性。

1. 开发环境介绍

我现在的开发环境是:deepin(linux)+ python3(PyQt5)+Qt-Designer(linux板)

当然,因为python是脚本语言,在windows下也可以运行,只要正确安装了python的PyQt5模块就可以。

2. 开发环境搭建

就本教程而已,我将以以上的开发环境进行介绍,包括代码框架,shell脚本使用。有写操作可能会因为环境不一致而有一点差异,但是既然你了解linux,我觉得你是可以解决的。

Linux版本:

2.1 查看是否已经安装python的PyQt5模块

进入python互交界面,查看是否已经已经安装PyQt5第三方模块,如下未报错,则说明已经安装:

如果import PyQt5报模块找不到,则说明未安装,则在linux下需要使用如下命令安装:

pip install PyQt5

 顺便安装serial模块:

pip install pyserial

2.2 查看是否安装qt-designer

在命令行模式下输入designer,是否跳出一个Qt设计师的软件,如下图,则说明linux下已经安装。

如果没有,使用如下命令安装:

sudo apt-get install qt-designer

或者从qt官网下载安装包进行安装。

 

2.3 将.ui文件转换成python代码

工具都安装好了之后,需要使用pyuic(depin下是pyuic5命令,所以如果直接clone了github代码的同学使用脚本编译ui文件时报错,就有可能是这个原因)将ui文件变成python文件。实际上生产的python文件是一个类,只是把一个ui文件,根据特定的转换规则转成python文件,供PyQt5模块识别和调用。

调用命令:

pyuic ui文件.ui  -o 目标文件.py

2.4 例子

根据以上步骤完成环境的搭建,这里使用一个demo来验证环境是否正确。

使用qt-designer创建一个简单的ui文件

在命令行上输入:designer

 

拖了3个控件,并且更换了变量名称,后面使用pyuic命令转换成python文件,类中的变量就是这个。

 

另存为demo.ui

使用pyuic(depin系统是pyuic5)命令将demo.ui装换成demo.py文件

再在demo文件夹处创建一个main.py文件,作为入口函数:

import sys  
from PyQt5.QtWidgets import *   
from demo import Ui_MainWindow



if __name__ == "__main__":
     app =QApplication(sys.argv)
     form=QMainWindow()  
     myapp=Ui_MainWindow()
     myapp.setupUi(form)
     form.show()
     app.exec_()

运行效果:

demo.py代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'demo.ui'
#
# Created by: PyQt5 UI code generator 5.11.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(470, 259)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(190, 30, 61, 31))
        self.label.setObjectName("label")
        self.PB_test_1 = QtWidgets.QPushButton(self.centralwidget)
        self.PB_test_1.setGeometry(QtCore.QRect(100, 140, 80, 26))
        self.PB_test_1.setObjectName("PB_test_1")
        self.PB_test_2 = QtWidgets.QPushButton(self.centralwidget)
        self.PB_test_2.setGeometry(QtCore.QRect(270, 140, 80, 26))
        self.PB_test_2.setObjectName("PB_test_2")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 470, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "Demo"))
        self.PB_test_1.setText(_translate("MainWindow", "Test_1"))
        self.PB_test_2.setText(_translate("MainWindow", "Test_2"))

 

至此,说明环境已经搭建好,剩下就需要了解PyQt5的一些模块函数,可以参考官网api文档。

【Python-BaseSerialPortTool】- 3. BaseSerialPortTool二次及增量开发介绍

【Python-BaseSerialPortTool】- 4. BaseSerialPortTool项目使用pyinstaller打包成exe可执行文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值