88.QTDesigner

当界面上控件比较多的时候,我们建议使用QTDesigner

目录

1  安装工具

2  简单使用

3  属性设置

4  伙伴设置

5  信号与槽设置

6  设置样式

7  设计完了之后使用

7.1  UI文件转py文件

7.2  qrc文件转py文件

7.3  加入槽函数

8  pycharm Tools中设置Qt.designer,pyuic5,pyrcc5

8.1  加入Qt.designer

8.2  加入UI转PY

8.3  加入qrc转py

9  QtDesigner详细用法

9.1  控件的父子关系调整

9.2  覆盖控件

9.3  增加属性

9.4  添加渐变色

9.5  添加图片作为资源

9.6  使用自定义类别

9.7  设置布局

9.8  UI文件的使用

9.8.1  解决槽函数问题

9.8.2  调整子控件

9.8.3  解决图的问题

9.8.4  另一种使用UI的方式


1  安装工具

安装完毕后我们进入环境的路径

如果不知道环境在哪,我们使用在pycharm中点击File --> settings

打开之后这样选,箭头指向的位置就是环境的位置

像我现在用的是conda,我们找到anaconda的安装文件夹,我这里使用的是base,所以库就在lib/site-packages中

  • 如果我们用的是虚拟环境,那么就会在envs/环境名字/lib/site-package中,这个我就不展示了

进入之后我们搜索designer.exe

可以找到上面这个应用程序

我的designer.exe在F:\anaconda\Lib\site-packages\qt5_applications\Qt\bin路径中

2  简单使用

双击打开之后是这样的

点击这个创建会出现一个面板

我们可以使用左侧的控件区域拖拽出一个简易的登陆界面来

之后按ctrl+r,可以试运行

3  属性设置

此时我们的密码并不是密文的形式,现在对右侧的属性进行调整

选中我们要调整的QLineEdit,然后我们可以看到右侧的属性栏,其中有三层,分别是他自身和他的父对象

我们之前讲过,密文是QLineEdit中的属性,此时我们不难找到echomode

选择password后,再次试运行

发现第二栏为密文形式

4  伙伴设置

我们现在的标签还没有绑定小伙伴,这个时候我们绑定一下,选择Edit --> Edit Buddle

  • 有的版本是中文,有的版本的英文,大抵都在这个位置

选择之后,点击标签,然后拖到他对应的小伙伴控件的地方

然后再点击这里,即可完成编辑

  • 当我们点击中间的箭头时,即可选中小伙伴连接,然后再按Del就可以删除了,红色为伙伴的选中状态

这个时候我发现我快捷键写错了,应该为&+快捷键

经测试按alt+b和alt+c确实可以生效

5  信号与槽设置

现在我们想给按钮连接一个槽函数

点击这个

之后选择我们的按钮,然后往右拖

会出现地线一样的东西,此时我们松开鼠标左键,会弹出一个对话框

  • 拖拽的时候拖到哪个控件上就会自动找到哪个控件的方法,我们现在就是拖到后面那个大控件QWidget上了

左边是信号,右边是槽

点击这个复选框后会出现该控件父类的信号和槽

我们此时选中点击信号,然后点击编辑

点击之后会弹出这样一个对话框

我们点击槽的加号可以自定义一个槽函数

我们现在对其命名为check_login()

然后我们点击下面的OK

之后回到了这个界面,我们将新创建的槽选中,然后点击OK

现在在界面上就会出现信号和槽的名字

之后再点击这个,我们就回到了编辑控件的模式

6  设置样式

我们现在想给按钮的背景放一张图片

选中按钮之后,然后在属性栏中搜索styleSheet

此时我们点开右侧的三个点会出现这个对话框

这个对话框也可以右键控件,然后选择change styleSheet弹出来

弹出之后我们点击添加颜色右侧的小箭头,可设置的qss如下

此时我们选择color,然后随便选一个颜色作为前景色,选择完之后我们可以看到左下角的文字,这个就表明这个样式表是有效的,如果出现语法错误也会进行提示

我现在随便输入一些字符,它就会告诉你这个样式表是无效的

它有问题的时候咱们就OK也应用不了了

我们改正之后点击Apply按钮

发现可以生效

我们现在想添加一张图片,我们点击添加资源旁边的小箭头

里面有三种Image

我们现在选择background-image

点击后,会弹出选择资源的对话框

现在我们什么资源都没有,现在我们点击一下小铅笔

弹出了这样一个对话框,我们点击这样一个按钮创建资源

之后会弹出这样一个对话框

  • 这一步会创建一个qrc文件,我们选择一个目录进行放置

我们命名为test_source,然后点击保存

这个时候编辑资源的对话框就是这样了

这个时候我们点这个

  • 这一步是添加图片的前缀

我们命名为lk

然后选中后点击添加文件按钮

点击之后会出现这样一个对话框,这个时候我们选中我们一张图片文件

比如我们选择这个气球,然后点击打开

编辑资源对话框会变成这样,现在我们点击一下OK

选择资源对话框会变成这样,我们点击一下OK

此时我们样式表对话框会变成这样,此时我们点击一下Apply

发现它变了

我们再点击这个界面中的OK就完事儿了,当然点OK之前不点应用也可以

7  设计完了之后使用

此时我们这个登陆界面设计完毕了,现在我们ctrl+s保存界面

会保存为一个ui后缀的文件

我们选择路径,输入文件名,然后点击保存

我们为了好看我们把上面的qrc文件与这个UI文件放到同一个文件夹中

在更改的时候如果出现这个对话框,我们点击复制就可以了

更改之后我们还需要再保存一遍

此时我们的项目路径下一共有三个文件

一个UI,一个qrc,一张图

UI文件本质上是一个xml文件,我们可以直接加载这个xml文件,也可以把这个UI文件转换为PY文件

7.1  UI文件转py文件

我们需要在pyuic5的路径下输入这样一条命令

这个工具在安装Pyqt时已经自动安装完毕了,不需要再装一遍

我们现在先找到pyuic5

这个应用程序在这个路径中

我们在这个路径中搜索pyuic就可以找到

回到咱们这个命令

需要替换两个地方,第一个地方是需要转换的文件,第二个地方是指定的路径

我们现在把刚刚的UI文件转化一下

首先打开cmd

进入script路径

然后我们这样写

写完之后敲一下回车

这个时候我们就在指定目录下多了一个py文件

我们现在可以点开看一下,它大概是这样的

把咱们的拖拽效果搞成了编码,这些编码在咱们之前的课程中都有介绍过

我们也可以把UI文件转换成可执行的py文件,我们重新搞一个名字,然后在后面加-x

这样我们的代码下面就加上了main

咱们现在还需要一个样式表样式表

7.2  qrc文件转py文件

这个要用到pyrcc5,同样在脚本中可以找到

我们现在转一下

  • 一般来讲我们会将转换后的文件名加上 _rc

转完之后的py文件是这样的,它会把图转换成二进制文件

7.3  加入槽函数

现在我们还差最后一个东西,我们刚刚自定义了一个槽函数,但是并没有填写内容,我们现在把这个内容填进去,槽函数的内容在这

我们有两种操作方式,一种是替换掉这个槽函数的父对象

另一方式是在下面用实例化后的对象来搞,像这样

至此,我们设计的UI界面就可以在pycharm中打开了

8  pycharm Tools中设置Qt.designer,pyuic5,pyrcc5

首先我们点开 setting

在tools下找到External Tools

点击加号

8.1  加入Qt.designer

点开加号之后我们输入Name和Description,Description可以不写

然后再Program中选择designer.exe

选完之后就变成这样了

然后我们更改一下 Working directory,这个是指UI文件默认保存在哪

我们首先给默认的删掉,然后点击插入宏

点开之后里面会有一个ProjectFileDir 这个的意思的项目路径,我们选中后点击Insert

这个时候就变成这样了,然后点击OK

在这里也点击OK

然后我们在这里就可以找到刚刚创建的工具了

经测试点击之后确实可以打开Qtdesigner

8.2  加入UI转PY

还是点刚刚的加号,之后输入名字和描述

program选中pyuic5.exe

Pyuic5这个工具是需要接收参数的

我们一般是在pycharm中右键选择UI文件后直接转换,所以我们这样写

$FileName$ -o $FileNameWithoutExtension$.py -x

之后我们再修改工作目录,我们通常把UI文件与转换的PY文件放在同一路径下,所以我们选择 $FileDir$

之后点击两个OK,这个时候我们就可以直接转了

经测试是可以的

8.3  加入qrc转py

这个我就不赘述了,我把内容展示一下

  • Program: F:\anaconda\Scripts\pyrcc5.exe
  • Arguments: $FileName$ -o $FileNameWithoutExtension$_rc.py
  • Working directory:$FileDir$

经测试确实能转

9  QtDesigner详细用法

我们在新建窗体的时候一般会选择Widget,选择这个之后他会把我们确定的操作(如插入控件,连接槽函数)等会封装在一个类中,我们可以实例化这个类进行操作

9.1  控件的父子关系调整

我在原本的widget上又放了一个widget2,然后再在widget2上放一个按钮,这个时候按钮默认为widget2的子控件

现在的父子关系是这样的

我现状不想让按钮为QWidget2的子控件,还想让他保持原位置不动,我们先把当前的位置记下来

  • x,y是按钮的当前相对于widget2的位置

然后我们把按钮拖出Qwidget2,此时父子关系自动消除

然后选择按钮,之后通过输入x,y改变位置

输入时,我们应先查看QWidget2的位置,然后做加法

当前QWidget2的位置为(200,310),按钮刚刚查看的位置是(50,60),所以当前按钮的位置应该输入为(250,370)

这个时候按钮在不改变位置的情况下独立于QWidget2了

9.2  覆盖控件

此时我想用QWidget2把按钮遮住,为了好看我先改变一下QWidget2的背景颜色

我们右击QWidget2,然后点击放在前面

这样就覆盖掉了

9.3  增加属性

我们在使用qss的时候对指定属性设置过qss,增加的属性就是做这个用的

比如我们现在对按钮加上一个error_level属性

我们选中按钮后点击属性编辑器的加号,然后点击字符串

弹出创建动态属性对话框,然后输入error_lever然后点击OK

这个时候会在右边出现这个

我们输入对应的属性值即可

当我们想删除这个属性时,我们可以选中后点击这个减号删掉

9.4  添加渐变色

我们在样式表的第二项就可以添加渐变色

比如我们现在想更改背景颜色,我们点击background-color,此时会弹出这个对话框

这些都是渐变的方式,我们可以选择其中一个进行编辑,也可以新建一个

  • 这个用的不多一遍是添加一张图片作为背景,等我用到的时候再添加相应的内容

我们就选择下面的这个彩虹作为背景颜色

点击两个OK后,背景颜色有所变化

9.5  添加图片作为资源

这个之前介绍过,方法我就不赘述了,在添加资源时,可以一块添加多个资源

9.6  使用自定义类别

首先我们创建一个py文件放置自定义的类,在例子中我们就将它命名为costom_btn,然后在其中填写如下内容

然后我们在qtdesigner中右键指定控件,然后点击提升为

会弹出这样一个对话框

在对话框中,输入提升的类名称btn

头文件填写创建类的文件名costom_btn

然后点击添加

之后点击提升

现在我们的QPushbutton的类就变为了btn

此时试运行(ctrl+r)是不能展现出自定义类的效果的,我们现在保存这个UI文件,名称为costom_widget

然后我们把UI文件转换为py文件,之后打开py文件,在这里就有自定义控件的体现

这个时候在Pycharm中运行这个py文件就有效果了

9.7  设置布局

当我们要对整个窗体整体进行布局时,我们可以点击上面这四个按钮,分别是水平布局,竖直布局,网格布局,表单布局,下面这个图是我没布局前的样子,我们现在点击网格布局

当我们想取消布局的时候,我们点击这个按钮

点击后就会变为无布局的形式

我们也可以进行某几个控件的部分布局,此时我们选择想要布局的控件,然后点击布局按钮

我们此时点击了水平布局,点击后他们就变为了水平布局

可以对布局调整大小,里面的控件会根据尺寸策略自动调整大小

如果想取消我们点击取消布局的按钮

在布局中我们可以把弹簧加入进来

如果我们设置完控件尺寸之后,发现控件没按照自己想象的对齐方式摆放,我们可以右键点击控件,然后选择Layout Alignment,然后再其中就可以选择对齐方式

9.8  UI文件的使用

除了上面介绍的转成py文件使用,我们也可以直接使用UI文件

首先我们创建一个Py文件,然后把模板放进去

然后加上这两句话

这样我们就可以直接运行了

但是如果界面中有图片的话会加载不出来,如果有槽函数的话会直接报错

9.8.1  解决槽函数问题

这个我们设置给self后需要自己定义一个

定义后不会报错,可以运行

9.8.2  调整子控件

调整之前我们需要先找到子控件,此时我们需要打开UI文件,然后查看这里

比如我现在相对lineEdit_2进行调整

这个时候就调整好了

9.8.3  解决图的问题

这个首先需要UI对应的qrc文件,然后把qrc文件转换为py文件,之后再在开头输入这一句

  • 这个是qrc对应py文件的名字,并不是固定的

这样我们就有图片了

9.8.4  另一种使用UI的方式

我们把UI文件转换为py文件后,再新建一个py文件,之后把UI转换的py文件导入新建的py文件中

槽函数和图片和上面的处理方式相同即可

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值