python配置pyqt5_【PyQt5】环境及项目配置

一、前言

PyQt5很早就用过,并写过几篇教程,在我CSDN博客里也能看到之前的内容,不过当时的我还是保留了一些东西,现在看来这不是一个很好的习惯,这段时间我需要用到PyQt写小程序,但在一开始就卡壳了,回头翻翻自己的文章,也没什么很大的收获,最后费了不少精力才解决,所以我想重启文章,也是一种记录。

二、开发环境

操作系统:Deepin V20(Debian10)

IDE:PyCharm 2020.2(Community Edition)

Python版本:3.7.3

PyQt版本:5.15.0

具体的下载安装这里就不过多赘述,这里就讲讲如何给自己的项目进行PyQt的配置。我的开发环境虽然是Linux,但由于软件、语言都具有跨平台的特性,所以可以相同。

PyCharm如果英文版用不惯想要汉化,可以去下载汉化包,虽然汉化不完全,但基本的汉化都有,为了保证文章的通用性,我就用英文版,其实真正用起来,上手了就没什么难的,真正操作的也就这么几个按键,建议用原版。

三、配置

1.创建工程

为了给开发有个干净的环境,不会因为项目的积累导致最后系统环境变得很杂乱,所以在一开始不要直接在命令行用pip下载Python库,我们在PyCharm里面用虚拟环境Venv将项目隔开来。

2.配置PIP

由于我们使用了虚拟环境,所以在每个项目了都需要单独安装python库,这个安装直接在PyCharm里进行。软件默认是官方源,国内访问起来速度很慢,应此需要换成国内的pip源。

这里使用清华的pip源:

https://pypi.tuna.tsinghua.edu.cn/simple

按照此路径打开至设置界面:

File > Settings > Project > Python Interpreter

点开上图红圈位置"+",进入库管理界面

再点开上图红圈的"Manage Repositiories"

最后把官方的源给删除,将清华源添加进去,然后确定之后,回到上个界面点下刷新就能看到清华源的库啦。

3.安装PyQt5及相关工具

在库管理界面搜索"pyqt5",安装下面2个库:“pyqt5”和"pyqt5-tools",如果安装失败了可以尝试换个姿势多试几次。

4.配置PyQt5工具

安装完PyQt后,我们还需要配置一下工具,即QtDesigner和PyUic:

QtDesigner:可视化窗口开发工具

PyUic:将QtDesigner的ui文件转换成Python识别的py文件

来到以下路径:

File > Settings > Tools > External Tools

按下面两张图创建2个工具:

QtDesigner的具体参数如下:

Program:$FileDir$/venv/bin/pyqt5designer

Arguments:$FileName$

Program:$FileDir$

PyUic的具体参数如下:

Program:$FileDir$/venv/bin/pyuic5

Arguments:$FileName$ -o $FileNameWithoutExtension$.py

Program:$FileDir$

这两个工具的具体使用,在下面Demo里进行演示。

5.Demo实操

要实现的功能如下:按下按钮,界面上的标签文字更改为"hello"

步骤如下:

在External Tools里打开QtDesigner,我们就能进入设计器的界面。

第一次打开可能会报错,因为我们写了参数,而此时什么文件都没有,忽略即可。

我们新建一个Widget页面,这里有三类页面可选:MainWindow、Widget、Dialog,简单说明一下:

MainWindow:一般作为软件的主窗口,带有工具栏和状态栏。

Widget:一般用作子窗口,可以是一个软件里面的不同功能界面。

Dialog:一般用作对话窗口,临时弹出输入或确定一些内容之类的。

这里我们随便选一个就好啦,这里选Widget。

我们来看下整个QtDesigner的界面功能,如下图所示:

从控件工具箱拖拽出一个label标签和pushbutton按钮进行布局,界面就完成里。

接下去需要将按钮的信号和槽进行关联,这里的“信号”相当于田径比赛的信号枪发出信号,“槽”就是我们听到这个指定的信号之后会做出的反映,将信号和槽关联起来就能实现我按下按钮后触发预定的python函数。

点击下图红圈里的按钮进入关联界面:

切换到界面后,鼠标按住按钮可以拖拽出一条线,可以直接连到label上进行关联,也可以拉到界面空白处,其实就是和谁关联的问题,如果不确定或者想实现更多的功能,你可以拖到界面空白处,我们都是可以在python里获取到的。

随后就会弹出一个窗口,左半部分是对信号的选择,我这选择click(),也就是被按下的时候发送信号,有半部分没有内容,没关系,我们点Edit按钮,自己添加一个。

最终创建了一个名为btn_clicked()的槽,这也是我们在python编程中对应函数的名字。

在点击OK按钮后,设计器右边自动就生成了信号与槽的内容,看一下也能大致理解其工作过程。

至此界面设计部分全部完成,我将其保存在项目的根目录,命名为"myWindow.ui"。我们回到PyCharm,右击“myWindow.ui”找到“External Tools”里的Py2Uic,将"myWindow.ui"转换为"myWindow.py",打开"myWindow.py"也可以看到里面的内容。

在软件编写的过程中,我们肯定会对界面不断进行添加、修改,所以ui文件肯定不能动,我们需要用另外的py文件来驱动,这里在"main.py"里进行编写,代码如下:

# Author: 斜影重阳xycy # Date: 2020.8.27 import sys from PyQt5 import QtWidgets from myWindow import Ui_Form class MyWin(QtWidgets.QMainWindow, Ui_Form): # 继承QtDesigner设计的界面 def __init__(self): # 类初始化 super().__init__() # 用父类的初始化方法来初始化继承的属性 self.setupUi(self) # UI初始化 def btn_clicked(self): # 定义槽函数 self.label.setText("Hello") # 改变label的文本属性 if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) myShow = MyWin() myShow.show() sys.exit(app.exec_())

然后点击右上角的运行绿色小三角,看看效果吧~

四、总结

QT开发本身大大提高里我们的开发效率,现在借了Python的东风,更是降低了开发的门槛,例如QT本身自带了很多的数据类型,强大但有些复杂,我们就能用Python的数据类型来代替,强强联手,所向无敌。

本文地址:https://blog.csdn.net/gan19951101/article/details/108252137

希望与广大网友互动??

点此进行留言吧!

你可能感兴趣的:(python配置pyqt5)