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

 项目结构

        在上一篇文章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, QtWidgetsclass 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.translateForm.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_Formclass 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)#实例化MyMainFormmyw = 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.mzph.cn/news/167267.shtml

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

相关文章

Feign接口请求返回异常 no suitable HttpMessageConvert found for response type

问题场景&#xff1a; 后端调用feign接口请求, 接口返回异常, no suitable HttpMessageConvert found for response type 问题描述 报错异常如下&#xff1a; //根据图片特征 去查询人员信息ResultVo<List> personVos ipbdFaceLibPersonApi.queryFacePersonByFeatur…

华为云之SFS弹性文件服务使用体验

华为云之SFS弹性文件服务使用体验 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、SFS弹性文件服务介绍2.1 SFS弹性文件服务简介2.2 SFS弹性文件服务特点 三、购买ECS弹性云服务器3.1 购买ECS弹性云服务器3.2 查看ECS弹性云服务器状态3.3 远程连接ECS3.4 检查操作系统版…

package.json 中的版本号,符号 ~ 与 ^ 的区别及其他符号的含义

"element-ui": "^2.15.1", 版本号&#xff1a; 2.15.1 对应 x.y.z z &#xff1a;表示一些小的bugfix, 更改z的号&#xff1b;(修复补丁-z)&#xff08;~符号&#xff09; y &#xff1a;表示一些大的版本更改&#xff0c;比如一些API的变化&#xff1b;(…

迭代器模式 (Iterator Pattern)

定义 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;用于顺序访问集合对象的元素&#xff0c;而无需知道集合对象的底层表示。迭代器模式将遍历集合的责任从集合对象转移到迭代器对象上&#xff0c;这简化了集合接口和实现&#xff0c;…

计算机应用基础_错题集_基础知识---网络教育统考工作笔记006

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、基础知识部分错题集总结前言 计算机应用基础统考,错题集总结 一、基础知识部分 基础知识部分 2、微处理器芯片的位数即指______。 A.速度 B.字长 C.

Unity Android FireBase bugly报错查询

报错如下图&#xff0c;注意&#xff0c;标红的三处 使用的il2cpp和架构是arm64-v8a 那我们就可以根据这些去找对应的符号表&#xff0c;在unity安装目录下 Unity2020.3.33f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\arm64-v8a 找到l…

Tomcat注册为服务后,如何配置Tomcat内存大小

前提条件&#xff1a;tomcat已经注册为服务。 1.winR,输入regedit打开注册表 2.找到Tomcat注册表路径&#xff1a; HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat80603.找到jvm内存配置路径&#xff1a; HKEY_LOCAL_MACHINE\SOFTW…

PTA-6-312 使用多态实现图书馆计算罚金功能

题目&#xff1a; 图书馆提供给读者借阅服务&#xff0c;包括借阅书籍及音像制品。如果借阅超时需要缴纳罚金。对于不同类型的书籍和音像制品罚款规则不同。 成人书籍:允许借阅的时间是21天&#xff0c;每超时1天&#xff0c;需要缴纳罚金2元;如果超时3天以上&#xff0c;超出的…

vue中 mixin用法

在Vue.js中&#xff0c;mixin是一种可以在多个组件之间共享Vue组件选项的灵活方式。mixin对象可以包含任何组件选项。当组件使用mixin时&#xff0c;所有mixin对象的选项将被“混合”到该组件的选项中。 使用mixin的一个主要优点是可以在多个组件之间重用和共享代码。这可以帮…

SSM大学生社团信息管理系统-99953,(免费领取源码)计算机毕业设计选题开题+程序定制+论文书写+答辩ppt书写 包售后 全流程

SSM大学生社团信息管理系统APP 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;高校当然也不能排除在外。大学生社团信息管理系统APP是以实际运用为开发背景&#xff0c…

CMake中常见的预定义变量

文章目录 CMake常见的预定义变量CMake variables官方文档 CMake常见的预定义变量 在 CMake 中&#xff0c;有一些常见的预定义变量&#xff0c;它们提供了有关项目、目录结构和构建环境的信息。这些变量可用于设置路径、传递参数、以及进行其他与构建过程相关的操作。 以下是…

Rust语言入门教程(五) - 流控制语句

if 表达式 在Rust中&#xff0c; if语句的判断条件不需要用( )括起来&#xff0c; 它会认为所有在if 和 {之间的表达式就是判断条件&#xff0c;例如&#xff1a; if num 5 {msg "five"; }判断条件的表达式必须返回一个bool型的值&#xff0c; 因为Rust是一个不喜…

[C/C++]数据结构 循环队列

前言: 队列是一种具有先进先出特性的结构,但是当数据出队列以后,前面的空间就无法再次利用了,循环队列就可以解决这个问题 一:概念及结构: 1.循环队列概念 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队…

颠覆与创新:算法备案的双重挑战

随着数字时代的迅猛发展&#xff0c;算法已经成为了企业创新和竞争的关键因素。然而&#xff0c;伴随着算法的广泛应用&#xff0c;数据隐私、法规合规等问题也愈发凸显&#xff0c;给企业带来了双重挑战。本文将深入探讨这一话题&#xff0c;探讨算法备案如何在颠覆与创新之间…

IDEA、PHPSTORM 在命令行中进行 PHP debug

然在终端执行控制器的方法php yii test/ab 即可看到触发debug 调试

视频剪辑技巧:多个视频合并新篇章,高效视频剪辑,创造无限可能

在数字媒体时代&#xff0c;视频剪辑已经成为一项重要的技能。多个视频合并是一种将多个视频片段合并成一个完整视频的技巧。这种技巧可以将不同的视频片段组合在一起&#xff0c;制作出独特且具有吸引力的视频内容。现在一起操作下云炫AI智剪如何批量合并视频的操作吧。 一、准…

友思特分享 | Neuro-T:零代码自动深度学习训练平台

来源&#xff1a;友思特 智能感知 友思特分享 | Neuro-T&#xff1a;零代码自动深度学习训练平台 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 工业自动化、智能化浪潮涌进&#xff0c;视觉技术在其中扮演了至关重要的角色。在汽车、制造业、医药、芯片、食品等行业…

针对CSP-J/S的每日一练:Day 11

一、审题 题目描述 给定两个大小分别为 m m m 和 n n n 的正序&#xff08;从小到大&#xff09;数组 n u m s 1 nums1 nums1 和 n u m s 2 nums2 nums2。请你找出并返回这两个正序数组的中位数。 算法的时间复杂度应该为 O ( l o g ( m n ) ) O(log (mn)) O(log(mn)) 。…

初学vue3与ts:路由跳转带参数

index-router <!-- 路由跳转 --> <template><div><div class"title-sub flex"><div>1、用router-link跳转带参数id1&#xff1a;</div><router-link to"./link?id1"><button>点我跳转</button>&…

maven 将Jar包安装到本地仓库

window系统&#xff1a; 注意事项&#xff1a;在windows中&#xff0c;使用mvn指令将jar安装到本地仓库时&#xff0c;一定要将相关资源使用“"”包裹上&#xff0c;不然会报下面的错&#xff1a; mvn install:install-file "-DfileD:\BaiduNetdiskDownload\qianzixi…