在完成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主程序的基本框架相关推荐

  1. python封面是什么样子_Python的学习路线是怎么样的?

    这题我会,Python学习资料很多,多到什么程度?随便网上冲浪一小会儿,马上就会塞满2T的度盘. 面对形形色色的资料,大多数人看到都处于一脸懵逼的状态,这时候如何建立起一套标准的学习体系就变得非常重要 ...

  2. python编程教程第九讲_Python入门学习视频,最全面讲解视频无偿分享,这些基础知识你都懂了吗?...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  3. python保存数据型变量_Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  4. python程序基础书写文本_Python基础手册4——文本结构

    简单来讲,Python程序可以分解成模块(文件).语句.表达式以及对象(数据): 1.程序由模块组成 2.模块包含语句 3.语句包含表达式 4.表达式建立并处理对象. 所以,Python 代码主要由两 ...

  5. python运维书籍推荐_python如何学习?下面给大家分享一些我整理的书籍

    image python如何学习?下面给大家分享一些我整理的书籍 入门书籍 1.<编程快速上手 让繁琐工作自动化>.pdf 编程快速上手 让繁琐工作自动化.pdf 2.<Python ...

  6. python程序设计基础考试重点_python语言程序设计基础 复习整理 第1-3章

    第一章 程序设计基本方法 1.1 计算机的概念 /计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性. /摩尔定律:单位面积集成电路可容纳晶体管的数量约每两年翻一倍.翻倍翻倍翻倍翻倍.. ...

  7. python程序跑得慢_Python程序慢的重要原因

    Python慢的重要原因: 1.python是动态性语言不是静态性语言 在python程序执行的时候,编译器不知道变量的类型. 2.python是解释性语言而不是编译性语言 解释型语言与编译型语言它们 ...

  8. python程序设计基础实战教程_Python程序设计基础实战教程

    第1章 Python概述 1.1 Python的诞生 1.2 Python的特点 1.3 Python能做什么? 1.3.1 Python常规应用 13.2 Python在大数据时代下的应用 1.4 ...

  9. python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!

    近些年随着Python语言越来越流行,越来越多的人选择Python语言作为自己的职业方向.如何在心仪公司的面试中获得好成绩,并最终成功获得offer是每一个Python开发者都要慎重对待的事情,如下是 ...

最新文章

  1. 深度学习1:生成模型的输入数据集和可视化
  2. css3 选择器_CSS 3
  3. 在Linux下安装配置Oracle11g R2
  4. 站在公司和员工的角度看实习员工
  5. [Linux]Ubuntu 以管理员权限打开文件夹
  6. 本地 服务器 文件传输,本地服务器文件传输
  7. FFmpeg入门测试
  8. eclipse,aptana,zendstudio,flex全屏插件
  9. 富士施乐m115b怎么连接电脑_富士施乐m115b驱动|富士施乐DocuPrint M115b一体机驱动下载 V1.01.00 官方版 - 比克尔下载...
  10. SSM框架集合(2021)基础使用
  11. 眼保健操练习方法,眼保健操图解教程
  12. 考试,一种严格的水平鉴定方法。
  13. android学习笔记之磁场传感器制做指南针
  14. 蜜蜂的群体决策:一万只蜜蜂如何投票选择最佳巢穴?
  15. 线性回归 假设_违反线性回归假设的后果
  16. 手机解除移动宽带屏蔽_家用宽带为什么Wifi比有线网速快很多?是谁偷走了你的带宽?...
  17. 数仓--拉链表实战⭐⭐⭐⭐⭐
  18. 射频微波芯片设计7:详解基于ADS的低噪声放大器芯片设计
  19. 浅谈矩阵变换——Matrix
  20. 获取手机唯一识别码IMEI

热门文章

  1. cent 8.0 安装tomcat 9.0_nginx+tomcat会话保持方案探讨
  2. osi七层模型tcp/udp
  3. Jmeter输出完美报告
  4. 理解MySQL--索引与优化(转载)
  5. 2793 [Poi2012]Vouchers
  6. SQL SERVER 的 INFORMATION_SCHEMA 的使用
  7. 网络字节与主机字节转换 htons(), ntohl(), ntohs(),htons() 函数
  8. Excel中删除链接
  9. 10 | 软件测试工程师需要掌握的非测试知识有哪些?
  10. 学渣笔记之矩阵的导数与迹