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, 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()) 启动应用程序的事件循环并等待用户交互,直到应用程序关闭。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python 将当前时间转成CP56time2a BIN码

def cp56time2a_hex_str():# 获取当前时间now datetime.now()# 将当前时间格式化为CP56time2a格式s now.strftime("%Y%m%d%H%M%S")[2:]cp56time2a [s[i:i 2] for i in range(0, len(s), 2)]seconds cp56time2a[-1:][0]cp56time2a cp56time2a[:-1]seconds_hex …

openstack(2)

目录 块存储服务 安装并配置控制节点 安装并配置一个存储节点 验证操作 封装镜像 上传镜像 块存储服务 安装并配置控制节点 创建数据库 [rootcontroller ~]# mysql -u root -pshg12345 MariaDB [(none)]> CREATE DATABASE cinder; MariaDB [(none)]> GRANT ALL PR…

bat批处理文件

常用的bat批处理命令 1、遍历移动文件最好将文件编码保存为 ANSI编码 新的改变 1、遍历移动文件 把子目录里面的文件批量移动到当前目录 (或根目录) 项目中要批量导入附件,但是收集的子公司员工信息,都是每个人一个文件夹的&…

需求变更导致估算不精准 6大措施

需求变更可能导致估算不精准、项目成本增加、进度延迟等问题,如果不能准确地估算项目,往往会造成资源浪费和开发效率的降低,因此亟需解决因需求变更导致地估算不精准的问题。 一般来说,主要是从以下6个方面入手解决: 1…

python实现存款日利息计算器(窗口界面形式)

输入存款金额,7日年化收益率,输出每日利息 完整源码如下: import tkinter as tk from tkinter import messageboxdef calculate_interest():deposit float(entry_deposit.get())interest_rate float(entry_interest_rate.get())daily_int…

基于Zigbee的教室智能环境监控系统(论文+源码)

1.系统设计 此次研究的目的是设计一款基于Zigbee的教室智能环境监控系统,其系统框图如下图2.1。在此拟由CC2530单片机作为核心进行设计。同时结合多种传感器,如温度传感器,用来检测环境的温度。光照传感器,用来通过检测光照强度&…

告别传统Office,办公软件将如何选择

各家奶茶店的商战正如火如荼地进行着,各种办公软件之间的竞争亦是弥漫着无形的硝烟。WPS虽然凭借其操作便利、简单易上手的优势获得不少打工人的青睐,即使是在手机端,也可进行简单的数据处理。但是,正所谓“术业有专攻”&#xff…

前端入门(三)Vue生命周期、组件技术、事件总线、

文章目录 Vue生命周期Vue 组件化编程 - .vue文件非单文件组件组件的注意点组件嵌套Vue实例对象和VueComponent实例对象Js对象原型与原型链Vue与VueComponent的重要内置关系 应用单文件组件构建 Vue脚手架 - vue.cli项目文件结构refpropsmixin插件scoped样式 Vue生命周期 1、bef…

【STM32单片机】LED点阵花样显示设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用8*8LED点阵模块、按键模块等。 主要功能: 系统运行后,默认以静态模式显示,此时点阵左右循环切换图像。 当按下K…

C++之unordered_map/set的使用

前面我们已经学习了STL中底层为红黑树结构的一系列关联式容器——set/multiset 和 map/multimap(C98). unordered系列关联式容器 在C98中, STL提供了底层为红黑树结构的一系列关联式容器, 在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次, 当树中的节点非常多时,…

牛气霸屏-快抖云推独立版V1.6.7

介绍 快抖云推全插件独立版是最近很火的牛气霸屏系统独立版,牛气霸屏系统就是商家通过系统在线创建抖音或快手霸屏活动,并生成该活动的爆客二维码,用户通过扫二维码即可参加活动(活动可以是领取卡劵,抽奖等&#xff0…

PyQt6简介

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计12条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

如何用SWIG封装c++接口给java使用?

SWIG是什么? SWIG(Simplified Wrapper and Interface Generator)是一个将C/C接口转换为其他语言接口的工具,从而可以讲C/C的库集成到其他语言的系统中。目前SWIG已经可以支持Python, Java, C#,Ruby,PHP,R语言等十多种语言。 官方网址&…

Excel使用VLOOKUP查询数据

VLOOKUP函数在百度百科中的解释是: 解释一下,函数需要4个参数: 参数1(lookup_value):需要匹配的值参数2(table_array):在哪个区域里进行匹配参数3(col_index…

Celonis推出流程智能图,希望建立首个世界级“流程智能维基百科”

近日,全球流程挖掘领域的领导者Celonis在其年度客户大会Celosphere上推出了流程智能领域的一项创新,即流程智能图Process Intelligence Graph™(PI Graph)。 PI Graph 是一个与具体系统无关的、丰富的业务数字孪生体,…

三菱PLC应用[集锦]

三菱PLC应用[集锦] 如何判断用PNP还是NPN的个人工作心得 10~30VDC接近开关与PLC连接时,如何判断用PNP还是NPN的个人工作心得: 对于PLC的开关量输入回路。我个人感觉日本三菱的要好得多,甚至比西门子等赫赫大名的PLC都要实用和可靠&#xff01…

9.输出国际象棋盘【2023.11.24】

1.问题描述 要求输出国际象棋棋盘。 2.解决思路 国际象棋棋盘由64个黑白相间的格子组成&#xff0c;分为8行*8列。用i控制行&#xff0c;j控制列&#xff0c;根据ij的和的变化来控制输出黑方格还是白方格。 3.代码实现 #include<stdio.h> int main(){for(int i0;i&…

亚马逊运营中动态/静态住宅IP代理的应用有哪些?

作为全球最大的电商平台之一&#xff0c;亚马逊已经成为许多商家的首选销售平台。而代理IP作为近几天互联网的热门工具&#xff0c;在跨境电商界也起着非常强大的作用。那么在亚马逊运营中&#xff0c;适合动态住宅代理还是静态住宅代理呢&#xff1f;下面我们一起来探索&#…

基于LiteFlow构建实时会员权益体系

知识简介&#xff1a;通过LiteFlow规则引擎构建会员权益体系&#xff0c;实现权益节点可插拔&#xff0c;可编排&#xff0c;可复用的特性。完成会员权益数据底盘建设&#xff0c;将分散的权益数据集中&#xff0c;提升权益查询及管理水平。 历史痛点 1&#xff09;不同等级权…

MySQL 基于成本的优化

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