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_())
相关文章
|
2月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
76 4
|
13天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
108 70
|
1月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
15天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
120 68
|
11天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
86 36
|
5天前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
39 15
|
9天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
58 18
|
18天前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
32 8
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定