Python高级进阶#003 pyqt5与qtdesigner对照分析

简介: Python高级进阶#003 pyqt5与qtdesigner对照分析

知识回顾



1.已经拥有pyqt5可视化界面开发环境搭建

2.简单解析了pyuic生成的python代码

3.纯代码方式写了基于pyqt5的GUI界面


一、空的程序的生成理解



1.采用手工纯代码方式书写GUI程序。

2.采用qtdesigner方式来进行界面规划。

通过两种不同的形式制作的pyqt5程序,观察有何不同。


理解Qwidget是基于所有控件的基类,包括窗体控件、按钮、文本等等。


二、Qt Designer设计师界面相关属性



Geometry属性:

X:代表窗体出现的位置是在屏幕的左上角水平方向的0 的位置

Y:代表窗体出现的位置是在屏幕左上角垂直方向的0的位置

默认宽度:400

默认高度:300


ObjectName属性:表示窗体对象的名称 。对应的python代码中设置窗体名称的方法setObjectName


注意:窗体对象其实就是指qwidget的实例化对象


三、补充pyuic命令解析



使用Python.exe解释器

-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py


命令说明:-m表示调用某个模块,这表表示调用PyQt5.uic.pyuic 模块

$FileName$表示需要转换的源文件名称

-o 表示需要生成目标文件,这里使用$FileNameWithoutExtension$表示与源文件相同的文件名称但不包含扩展名的目标文件,扩展名,我们通过自己连接.py,那么最终表示生成的是python类型的文件。


四、Qt中信号的理解



比如说单击事件、某个超时信号等都是qt中的信号,说到底其实就是界面上面发生某个事件。


相关路径概念的说明

绝对路径:从根目录开始的详细路径

相对路径:相对于某个文件目录的路径

相对路径往往有一些符号代表:

.点表示当前路径

..点点表示上一层路径


五、函数补充解释



resize函数

作用:重新调整窗体的大小。

有两个参数,第一个参数表示宽度值,第二个参数表示高度值。

举例:

Form.resize(400, 300)


move函数

作用:调整窗体的位置。

第一个参数表示水平水平方向的位置。

第二个参数表示垂直方向的位置。

使用举例:

Form.move(0,0)


show函数

Pyqt5的show函数是窗体的显示功能


六、总结强调



1.掌握qtdesigner设计界面与pyuic转换后文件代码的对应关系。

2.掌握pyqt5中界面中常用函数的基本用法

3.掌握如何调用生成界面的思想。实则是如何使用pyqt5纯代码写gui界面的关键。


以下为本节源代码

UI转为py后的代码:

# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ljytest003.ui'
#
# Created by: PyQt5 UI code generator 5.13.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        Form.move(0,0)
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

ljy003.py调用UI界面

#导入python系统类库
import sys
#导入Pyqt5用到的类库,QApplication应用程序类,QWidget控件的基类
from PyQt5.QtWidgets import QApplication,QWidget
#导入生成界面的类的模块
import ljytest003
#实例化一个类,通过构造函数传入python的应用参数
print(sys.argv) #这里打印出包含当前文件绝对路径名称的列表
app=QApplication(sys.argv)
#实例化界面基类
w=QWidget()
#实例化生成的界面的类
form=ljytest003.Ui_Form()
#将生成的窗体控件及配置载入到w控件对象中
form.setupUi(w)
#窗体显示
w.show()
#app.exec_()表示程序界面监听事件的开始,是一个死循环。
sys.exit(app.exec_())
相关文章
|
1天前
|
数据可视化 数据挖掘 数据处理
【Python进阶(七)】——Series数据结构
【Python进阶(七)】——Series数据结构
|
1天前
|
Python
【Python进阶(六)】——随机数与数组
【Python进阶(六)】——随机数与数组
|
1天前
|
Python
【Python进阶(五)】——模块搜索及工作目录
【Python进阶(五)】——模块搜索及工作目录
|
1天前
|
Python
【Python进阶(四)】——魔术命令
【Python进阶(四)】——魔术命令
|
1天前
|
Python
【Python进阶(三)】——面向对象编程
【Python进阶(三)】——面向对象编程
|
1天前
|
Python
【Python进阶(二)】——程序调试方法
【Python进阶(二)】——程序调试方法
|
1天前
|
Python
【Python进阶(一)】——异常与错误
【Python进阶(一)】——异常与错误
|
4天前
|
语音技术 开发者 Python
python之pyAudioAnalysis:音频特征提取分析文档示例详解
python之pyAudioAnalysis:音频特征提取分析文档示例详解
10 0
|
4天前
|
数据可视化 大数据 Python
python大数据分析处理
python大数据分析处理
10 0
|
5天前
|
机器学习/深度学习 人工智能 大数据
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀