参考视频:【Python-GUI编程-PyQt5 (少)】 https://www.bilibili.com/video/BV17J41177ro/?share_source=copy_web&vd_source=15fb681e1f5b7ce6070d9ce0522af1bc

【Python Pyqt5最详细教程(一)】 https://www.bilibili.com/video/BV1mg4y1p74P/?share_source=copy_web&vd_source=15fb681e1f5b7ce6070d9ce0522af1bc




各个控件的简单介绍: 【Python-GUI编程-PyQt5 (少)】 【精准空降到 02:21】 https://www.bilibili.com/video/BV17J41177ro/?p=14&share_source=copy_web&vd_source=15fb681e1f5b7ce6070d9ce0522af1bc&t=141

需要的时候可以反复观看

控件的学习和使用需要类和继承的思想


对象的名称和属性的设置

案例演示:qss的使用




对象的父子关系操作

内存管理机制:

1.QObject继承树:

  (1).所有的对象都是直接或间接继承自QObject

  (2).QObjects在一个对象树中组织他们自己:当创建一个QObject时,如果使用了其他对象作为其父对象,那么,他就会被添加到父对象的children()列表中

  (3).当父对象被销毁时,这个QObject也会被销毁

2.QWidget:

  (1).拓展了父子关系

  (2).当一个控件设置了父控件:会包含在父控件内部、收父控件区域裁剪、父控件删除时,子控件会自动删除。

父子关系之间的作用效果

for sub_widget in win_root.findChildren(QLabel):

这行代码可以找到win_root中所有属性为QLabel的子控件


信号与槽机制

  信号与槽是Qt中的核心机制,主要作用在于对象之间进行通讯

  信号:当一个控件的状态发生改变时,向外界发出的信息

  :一个执行某些操作的函数/方法

  所有继承自QWidget的控件都支持“信号与槽”的机制

当信号发生时,连接的槽的函数会自动执行(QPushButton().pressed...)

信号可以是控件内置的,也可以是自定义的

槽函数可以是内置的,也可以是自定义的

连接方式: object.信号.connect(槽函数)

特性:

  1.一个槽可以连接多个槽函数

  2.一个信号也可以连接另外一个信号

  3.信号的参数可以是任何Pythin类型

  4.一个槽可以监听多个信号

信号与槽一些基本函数与作用



信号与槽的简单案例


类型判定

类型判定:API


对象删除:obj.deleteLater()

  删除一个对象时,也会解除它与父对象之间的关系

  deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event后才会销毁对象。这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时。

对象删除举例



  1.在print(obj1.children())时,仍有一个子类在里面,证明该函数不是立刻删除(区别于del,使用del时,由于引用的关系还在,并不能直接删除掉)

  2.随后obj2和obj3依次被删除

  3.在结束程序后,obj1也被释放掉


事件处理

1.事件机制

  相比较于“信号与槽机制”:信号与槽机制是对事件机制的高级封装,事件机制更偏底层(远离用户)

0.用户的操作会产生各种事件消息

1.第一个接收到消息的时操作系统,操作系统会将消息分发到对应的应用程序“消息队列”中

一个应用程序会产生两个队列,分别存放系统产生的消息和程序内部产生的消息

1.不断的按顺序检测队列中是否有消息

2.如果发现“事件消息”,则会包装成“QEvent对象”进行分发处理

将事件接收者(receiver.)和事件对象(evt)传递给QApplication对象的notify(receiver,event)方法

分发给receiver对象的evt方法:此方法会根据event的事件类型,分发给receiver具体的事件函数


定时器




总结

  QObject是所有的父类由于继承的关系,其他模块都含有QObject的特性和功能,想要学好其他模块就要先学好QObject。

PyQt5学习 (1)--对象的基本操作、QObject的更多相关文章

  1. JavaScript学习系列博客_14_JavaScript中对象的基本操作

    对象的基本操作 - 创建对象 - 方式一:使用new关键字调用的函数,是构造函数(constructor),构造函数是专门用来创建对象的函数. var obj = new Object(); - 方式 ...

  2. vue学习之路 - 4.基本操作(下)

    vue学习之路 - 4.基本操作(下) 简述:本章节主要介绍 vue 的一些其他常用指令. Vue 指令 这里将 vue 的指令分为系统内部指令(vue 自带指令)和用户自定义指令两种. 系统内部指令 ...

  3. JS — 对象的基本操作

    JS面向对象系列教程 — 对象的基本操作 面向对象概述  面向对象(Object Oriented)简称OO,它是一种编程思维,用于指导我们如何应对各种复杂的开发场景. 这里说的对象(Object) ...

  4. JavaScript学习04 对象

    JavaScript学习04 对象 默认对象 日期对象Date, 格式:日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用): 2.英文-数值格式:月 日,公元年 [时:分: ...

  5. Javascript学习4 - 对象和数组

    原文:Javascript学习4 - 对象和数组 在Javascript中,对象和数组是两种基本的数据类型,而且它们也是最重要的两种数据类型. 对象是已命名的值的一个集合,而数组是一种特殊对象,它就像 ...

  6. (58)Wangdao.com第九天_JavaScript 对象的基本操作

    对象的基本操作 创建对象 var 对象名 = new Object();        // new 函数;    称为构造函数,专门用来创建对象的函数 var god =  给对象增加属性 删除对象 ...

  7. InfluxDB学习之InfluxDB的基本操作| Linux大学

    来源地址:https://www.linuxdaxue.com/influxdb-study-series-manual.html 本文属于<InfluxDB系列教程>文章系列,该系列共包 ...

  8. Spring.NET依赖注入框架学习-- 泛型对象的创建和使用

    Spring.NET依赖注入框架学习-- 泛型对象的创建和使用 泛型对象的创建方法和普通对象是一样的. 通过构造器创建泛型对象 下面是一个泛型类的代码: namespace GenericsPlay ...

  9. TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...

  10. TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...

随机推荐

  1. 上传路径Class替换无效

    路径配置文件使用的常量,其它文件使用路径时,编译class时为静态常量信息,改变不同的路径常量则不生效

  2. python之变量

    什么是变量? 用来记录事务的变化状态,计算机模拟人,就需要具备人类某一个功能.你通过记录我的名字年龄等一系列的身份信息,以此和我进行匹配,确定我就是phoebe这个人. 为什么有变量? 游戏里的英雄角 ...

  3. software Engineering homework 4

    博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1068 ...

  4. Dependencies 和 Libraries 的区别

    Dependencies 和 Libraries 的区别 - 如何导入 jar 包 虽然现在的项目大多数人更愿意使用 Maven 等工具构建,但是在学习 Project Structure 这块的时候 ...

  5. login_while

    # -*- coding: utf-8 -*- # @Time : 2020/7/25 22:45 # @Author : Breeze # @FileName: login_while.py use ...

  6. WV电影网站的设计与实现-可行性研究分析报告

    引言 WV(Wonderful View)电影网站--奇景电影网. 1.1编写目的 1.2背景 在信息发展的时代,地球人口越来越多,人们相比去拥挤的电影院,更喜欢待在舒适的家中,通过互联网访问本站,实 ...

  7. MySQL日常维护指南

    一.常用命令 1.查看数据库默认编码 show variables like 'character%'; show variables like 'collation%'; 2.启动停止数据库 /et ...

  8. dubbo服务多网卡IP问题

    起因 更换电脑,dubbo服务不能调试,win7电脑好使,win10不行 分析 经过调试发现注册的ip地址,不是VPN分配的地址,多方面查找资料说ip排序的问题,尝试一下方法: 网络连接重新命名成一样 ...

  9. bat将多个文件夹下内容合并到一个文件夹下

    for /f "delims=" %%p in ('dir /b/ad') do copy %%p\*.* d:\all\ pause 目标文件夹 d:\all\ 最好不用中文目录

  10. 【BUUCTF】强网杯 2019随便注1 write up

    输入万能密码1' or 1=1# ,判断存在sql注入, SQL注入的万能密码实际上是利用了网址后台的漏洞,打开下面的网址不用密码和账号也可以登录后台. 万能密码原理: 万能密码能够绕过sql检测,在 ...