python程序的基本框架_Python PyQt学习随笔:PyQt主程序的基本框架
在完成UI设计将UI通过PyUic转成Py文件后,由于这个生成的文件每次通过PyUic生成时都会被覆盖,因此应用的主程序必须另外单独编写py文件。需要将UI生成的文件import到主程序的py文件中。
主程序的代码框架包括:
一、import 相关类
包括UI对应的py文件,以及使用到的PyQt相关的模块,具体看应用的情况,但一般要将QtWidgets、QtGui 、QtCore 导入,如:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt
二、根据UI类派生一个子类
在主程序中,需要根据UI对应类以及QtWidgets派生一个新类,在该新类中实现所有槽函数的代码。
关于派生的新类请注意:
1、一定要有两个基类,一个是UI界面窗口的窗口类,一个是UI类本身;
2、一定要实现新类的构造方法,并在构造方法中调用父类的构造方法;
3、新类的构造方法中要调用self.setupUi(self) ,setupUi为PyUIC生成的UI类图形界面初始化的重要函数。
案例:
class w_ReadExecl(QtWidgets.QWidget,Ui_Ui_tableView):#派生一个新类
def __init__(self): #新类构造函数,必须有
super(w_ReadExecl, self).__init__() #调用父类构造函数,必须有
self.setupUi(self) #进行图形界面初始化,必须有
self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked | QtWidgets.QAbstractItemView.SelectedClicked)
def showExcel(self): #按钮的槽函数
filename = self.e_InputFileName.text()
sheetname = self.inputSheetName.text()
hashead = self.inputHasHead.isChecked()
print(f"即将显示{filename}.[{sheetname }]"
........
三、编写应用主代码
这部分主要是要遵循PyQt5主程序的通用规范代码,包括:
1、 创建应用实例:
app = QtWidgets.QApplication(sys.argv)
每一个pyqt程序必须创建一个application对象,sys.argv是命令行参数,可以通过命令启动的时候传递参数。
2、初始化主程序窗口并显示:
w= w_ReadExecl()
w.show()
注意: w是主窗口应用名字,可以为自己想要的名字。
3、 事件处理开始,进入程序主循环
sys.exit(app.exec_())
主循环程序的任务就是等待事件,并把事件通过信号和槽的连接关系发送给指定应用处理。当调用app.exit()或者程序因为各种原因被破坏后,使用sys.exit()关闭程序,并释放内存资源。exec_()方法有下划线,是因为exec是一个Python关键词。因此,在PyQt中使用exec_()代替。
4、一个最小的主程序代码参考如下:
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = w_ReadExecl()
w.show()
sys.exit(app.exec_())
python程序的基本框架_Python PyQt学习随笔:PyQt主程序的基本框架相关推荐
- python封面是什么样子_Python的学习路线是怎么样的?
这题我会,Python学习资料很多,多到什么程度?随便网上冲浪一小会儿,马上就会塞满2T的度盘. 面对形形色色的资料,大多数人看到都处于一脸懵逼的状态,这时候如何建立起一套标准的学习体系就变得非常重要 ...
- python编程教程第九讲_Python入门学习视频,最全面讲解视频无偿分享,这些基础知识你都懂了吗?...
2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...
- python保存数据型变量_Python基础学习笔记(一)变量与数据类型
https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...
- python程序基础书写文本_Python基础手册4——文本结构
简单来讲,Python程序可以分解成模块(文件).语句.表达式以及对象(数据): 1.程序由模块组成 2.模块包含语句 3.语句包含表达式 4.表达式建立并处理对象. 所以,Python 代码主要由两 ...
- python运维书籍推荐_python如何学习?下面给大家分享一些我整理的书籍
image python如何学习?下面给大家分享一些我整理的书籍 入门书籍 1.<编程快速上手 让繁琐工作自动化>.pdf 编程快速上手 让繁琐工作自动化.pdf 2.<Python ...
- python程序设计基础考试重点_python语言程序设计基础 复习整理 第1-3章
第一章 程序设计基本方法 1.1 计算机的概念 /计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性. /摩尔定律:单位面积集成电路可容纳晶体管的数量约每两年翻一倍.翻倍翻倍翻倍翻倍.. ...
- python程序跑得慢_Python程序慢的重要原因
Python慢的重要原因: 1.python是动态性语言不是静态性语言 在python程序执行的时候,编译器不知道变量的类型. 2.python是解释性语言而不是编译性语言 解释型语言与编译型语言它们 ...
- python程序设计基础实战教程_Python程序设计基础实战教程
第1章 Python概述 1.1 Python的诞生 1.2 Python的特点 1.3 Python能做什么? 1.3.1 Python常规应用 13.2 Python在大数据时代下的应用 1.4 ...
- python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
近些年随着Python语言越来越流行,越来越多的人选择Python语言作为自己的职业方向.如何在心仪公司的面试中获得好成绩,并最终成功获得offer是每一个Python开发者都要慎重对待的事情,如下是 ...
最新文章
- 深度学习1:生成模型的输入数据集和可视化
- css3 选择器_CSS 3
- 在Linux下安装配置Oracle11g R2
- 站在公司和员工的角度看实习员工
- [Linux]Ubuntu 以管理员权限打开文件夹
- 本地 服务器 文件传输,本地服务器文件传输
- FFmpeg入门测试
- eclipse,aptana,zendstudio,flex全屏插件
- 富士施乐m115b怎么连接电脑_富士施乐m115b驱动|富士施乐DocuPrint M115b一体机驱动下载 V1.01.00 官方版 - 比克尔下载...
- SSM框架集合(2021)基础使用
- 眼保健操练习方法,眼保健操图解教程
- 考试,一种严格的水平鉴定方法。
- android学习笔记之磁场传感器制做指南针
- 蜜蜂的群体决策:一万只蜜蜂如何投票选择最佳巢穴?
- 线性回归 假设_违反线性回归假设的后果
- 手机解除移动宽带屏蔽_家用宽带为什么Wifi比有线网速快很多?是谁偷走了你的带宽?...
- 数仓--拉链表实战⭐⭐⭐⭐⭐
- 射频微波芯片设计7:详解基于ADS的低噪声放大器芯片设计
- 浅谈矩阵变换——Matrix
- 获取手机唯一识别码IMEI
热门文章
- cent 8.0 安装tomcat 9.0_nginx+tomcat会话保持方案探讨
- osi七层模型tcp/udp
- Jmeter输出完美报告
- 理解MySQL--索引与优化(转载)
- 2793 [Poi2012]Vouchers
- SQL SERVER 的 INFORMATION_SCHEMA 的使用
- 网络字节与主机字节转换 htons(), ntohl(), ntohs(),htons() 函数
- Excel中删除链接
- 10 | 软件测试工程师需要掌握的非测试知识有哪些?
- 学渣笔记之矩阵的导数与迹