python之pyqt专栏2-项目文件解析

news2024/11/17 1:47:07

 项目结构

        在上一篇文章python之pyqt专栏1-环境搭建,创建新的pyqt项目,下面我们来看一下这个项目下的文件。

        从下面的文件结构图可以看到,该项目下有3个文件,untitled.ui,untitled.py 以及main.py

QtDesigner可以UI界面的方式,编辑UI界面,并且保存成untitled.ui,

pyuic 会将untitled.ui 转换为untitled.py

        当我们需要改变程序的界面时,我们只需要通过QtDesigner 修改Ui界面,再通过pyuic转为".py"文件即可,不需要修改pyuic转换的".py"文件

untitled.py

        untitled.py有一个Ui_Form这个类只有setupUi(self, Form) retranslateUi(self, Form),两个函数。

       setupUi(self, Form) ,Form形参,用来传递对象。函数具体的语言则是执行一些界面的设置。

        retranslateUi(self, Form)函数,只要是实现国际化用的,用于界面文字自动识别当前国家

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(140, 130, 75, 23))
        self.pushButton.setObjectName("pushButton")

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "PushButton"))

main.py 

#导入sys模块
import sys
# PyQt6.QtWidgets模块中导入QApplication, QWidget
from PyQt6.QtWidgets import QApplication, QWidget

# untitled模块中导入Ui_Form类
from untitled import Ui_Form


class MyMainForm(QWidget,Ui_Form):
    def __init__(self,parent=None):
        #调用父类的构造函数
        super(MyMainForm, self).__init__(parent)
        #调用继承Ui_Form过来的setupUi函数
        self.setupUi(self)



# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    # 实例化应用
    app = QApplication(sys.argv)
    #实例化MyMainForm
    myw = MyMainForm()
    #myw显示
    myw.show()
    #启动应用程序的事件循环并等待用户交互,直到应用程序关闭。
    sys.exit(app.exec())
 自定义MyMainForm

        继承QWidgetUi_Form,是多继承。在__init__(self,parent=None)构造函数中,调用父类的构造函数,由于Ui_Form构造函数,也不需要。因此只会调用QWidget构造函数。调用self.setupUi(self)则是MyMainForm实例进行样式进行设置

代码执行

       app = QApplication(sys.argv),创建了QApplication实例,你可以继续添加各种GUI元素(如按钮,文本框,滑动条等),并将它们组织在窗口中。通常,一个Qt应用程序至少包含一个窗口(由QMainWindow或QWidget派生)。

       myw = MyMainForm() 创建了MyMainForm类的一个实例,将会调用MyMainForm,__init__(self,parent=None)函数

      myw.show() 用myw对象的show()方法。这个方法会让MyMainForm窗口在屏幕上显示出来。在窗口显示出来之后,用户就可以开始与窗口进行交互

        sys.exit(app.exec()) 启动应用程序的事件循环并等待用户交互,直到应用程序关闭。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1247479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 基于成本的优化

其实在MySQL中⼀条查询语句的执⾏成本是由下边这两个⽅⾯组成的: I/O成本 我们的表经常使⽤的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中 然后再操作。这个从磁盘…

livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形

livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形livox 介绍更换仿真中mid360雷达外形 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形 livox 介绍 览沃科技有限公司(L…

基于51单片机电子钟闹钟LCD1602显示proteus仿真设计

基于51单片机的LCD1602电子钟闹钟proteus仿真设计 基于51单片机的LCD1602电子钟闹钟proteus仿真设计功能介绍:仿真图:原理图:设计报告:程序:器件清单:资料清单&&下载链接: 基于51单片机…

如何训练专属的OCR文字识别模型

1. 背景 在10月24日程序员节,公司决定向每位技术人员发放购物实体卡以示庆祝。然而,手动输入实体卡上的一大串卡密可能是一项繁琐且不那么智能的任务;同时,线上用户在绑定购物卡的时候,同样也是需要手动输入。 基于以…

Mysql基础操作(命令行)

文章目录 Mysql基础操作(命令行)背景创建数据库选择数据库查看所有表查看表结构向表插入数据插入第一条插入第二条插入第三条 查询表数据修改表数据删除表数据 Mysql基础操作(命令行) 背景 docker安装mysql8,映射本地…

额温枪方案,MS8551,MS8601;MS1112,MS1100

鉴于测温的传感器信号非常微弱,需要用高精度、低噪声的运算放大器和高精度、低功耗的ADC。 运算放大器可供选择:MS8551 or MS8601,具有低失调(1uV)、低噪(22nV√Hz )、封装小等优点&#xff0c…

34970A 数据采集 / 数据记录仪开关单元

34970A 数据采集 / 数据记录仪开关单元 产品综述: Keysight 34970A 数据采集/数据记录仪开关单元由一个 3 插槽主机和一个内置的 6 1/2 位数字万用表组成。每个通道可以单独配置,以测量 11 种不同功能之一,这样既不会增加成本,也…

喜讯!云起无垠成为国家信息安全漏洞库(CNNVD)技术支撑单位

近日,云起无垠凭借其在漏洞挖掘、漏洞检测以及漏洞修复等领域的卓越表现,荣获“国家信息安全漏洞库(CNNVD)技术支撑单位等级证书(三级)”,正式成为CNNVD技术支撑单位。 中国国家信息安全漏洞库&…

科普:多领域分布式协同仿真

分布式协同仿真是一种在分布式计算环境中进行协同工作的仿真方法。使用该方法进行协同仿真时,仿真任务将被分发到多个计算节点上,并且这些节点可以同时工作以模拟完整的系统行为。分布式协同仿真已被广泛应用于工程、科学和军事领域,以便更好…

Python开源项目之人工智能老照片修复算法学习

文章目录 前言项目环境搭建conda虚拟环境创建激活环境Pytorch安装Synchronized-BatchNorm-PyTorch repository安装Global目录Synchronized-BatchNorm-PyTorch项目部署检测预处理模型下载下载脸部增强模型文件下载依赖完整部署后项目结构 项目使用验证一下总结关于Python技术储备…

【matlab程序】南海土台风画法

【matlab程序】南海土台风画法 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Python海洋专…

应用场景丨社区燃气管网监测系统建设

燃气作为现代社会的重要能源,燃气被广泛应用于居民生活、工业生产、商业服务等领域。然而,燃气泄漏事故时有发生,不仅给人们的生命财产安全带来严重威胁,也给燃气行业的发展带来不良影响。因此,对于燃气管道的监测和管…

你再不学Git就来不及了!!!

其他系列文章导航 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 版本控制 什么是版本控制 为什么要版本控制 一、认识 Git 1.1Git 简史 1.2Git 与其他版本管理系统的主要区别 1.3Git 的三种状态 二、Git 使用快速入门 2.1获…

conan 入门(三十三):requirements()指定header的可见性(transitive_headers)

package_type 从conan 2.x开始conafile.py增加了一个字段package_type,用于定义当前package的类型, 参见 package-type 如果我们在写conanfile.py时不指定这个成员,则它默认为library Requirement traits 不同的包类型定义默认定义不同的…

手把手webpack搭建前端架子

这里以react为例> (一)初始化package.json package name: 你的项目名字叫啥 version: 版本号 description: 对项目的描述 entry point: 项目的入口文件(一般你要用那…

web静态网页设计与制作-基于HTML+CSS+JS实现旅游摄影网站

web静态网页设计与制作,基于HTMLCSSJS实现精美的旅游摄影网站,拥有极简的设计风格,丰富的交互动效,让人眼前一亮,享受视觉上的体验。 我使用了基本的HTML结构来构建网页,并使用CSS样式进行美化设计&#xf…

在 Ubuntu 上安装最新版的 Calibre

目录 前言 方法1:从 Ubuntu 的仓库安装 Calibre 卸载 Calibre 方法2:获取最新版本的 Calibre 卸载 Calibre 结语 前言 Calibre 是一款自由开源的电子书软件。下面介绍如何在 Ubuntu Linux 上安装它。 作为电子书管理的瑞士军刀,Calibre …

软件开发的高效神器,程序员爱不释手

目录 一、低代码助力开发 二、低代码核心功能 1.业务建模: 2.表单建模: 3.页面建模: 4.流程建模: 5.报表建模: 6.门户建模: 7.大屏建模: 8.移动建模: 三、低代码解放程序员的双手 在…

POE交换机——电源解决方案-升压控制器\降压控制器\中高压降压转换器

PoE是一种有线以太网供电技术,使用于数据传输的网线同时具备直流供电的能力,PoE供电具有可靠、连接简捷、标准统一的优势。越来越多的工业物联网设备开始采用PoE供电, 如IP电话、网络视频监控以及无线以太网设备等。 PoE交换机是一种用于提供…

VMware Workstation 17 虚拟机自启动失效 解决脚本

VMware Workstation17新增加了虚拟机自启配置 但是很奇怪在我的一台计算机上能够自启,在另一台计算机上就失效 编写脚本 以命令方式完成虚拟机开机自启 #虚拟机自启.batif "%1""hide" goto CmdBegin start mshta vbscript:createobject("w…