六、按钮控件

QPushButton

常见的按钮实现类包括:QPushButton、QRadioButton和QCheckBox

QPushButton是最普通的按钮控件,可以响应一些用户的事件

from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys def func():
pass # 1.创建应用程序
app = QApplication(sys.argv) # 2.创建窗口
w = QWidget() # 修改窗口标题
w.setWindowTitle('普通按钮')
"""------------------ 显示普通按钮 ------------------"""
btn = QPushButton()
# 添加按钮提示
btn.setText('登录')
# 提示气泡
btn.setToolTip('登录按钮')
# 展示按钮
btn.setParent(w) # 3.显示窗口
w.show() # 4.等待窗口停止
sys.exit(app.exec())

七、信号和槽

1. 信号和槽简介

信号和槽机制是 QT 的核心机制,应用于对象之间的通信

  • 信号和槽是用来在对象间传递数据的方法:当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal的
  • Qt中对象已经包含了许多预定义的 signal(基本组件都有各自特有的预定义的信号)
  • 槽函数绑定了信号,信号一旦发出,就会自动调用绑定的槽函数

2. 信号和槽绑定

通过调用 QObject 对象的 connect 函数来将对象的信号与另外一个对象的槽函数相关联,当发射者发射信号时,接收者的槽函数将被调用

需求:

点击按钮,输出hello world

代码:

from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys # 槽函数
def click():
print('hello') # 1.创建应用程序
app = QApplication(sys.argv) # 2.创建窗口
w = QWidget() # 修改窗口标题
w.setWindowTitle('信号和槽的绑定')
"""------------------ 添加按钮 ------------------"""
btn = QPushButton()
btn.setText('点我')
btn.setParent(w) # 绑定按钮点击的信号和处理的槽函数
# clicked 信号
# click定义的槽函数
# btn.clicked.connect(click)
"""------------------ 槽函数使用lambda表达式 ------------------"""
# 信号和槽函数参数必须要保持一致
# 如果信号中参数有= 槽函数可以不用添加
btn.clicked.connect(lambda :print('hello')) # 3.显示窗口
w.show() # 4.等待窗口停止
sys.exit(app.exec())

3. 使用PyQt的槽函数

需求: 点击按钮,关闭窗口

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys # 1.创建应用程序
app = QApplication(sys.argv) # 2.创建窗口
w = QWidget() # 修改窗口标题
w.setWindowTitle('使用系统的槽函数')
"""------------------ 创建按钮 ------------------"""
btn = QPushButton()
btn.setText('关闭窗口')
# 显示按钮
btn.setParent(w) """------------------ 信号和槽绑定 ------------------"""
btn.clicked.connect(QApplication.quit)# 使用QApplication的quit方法 # 3.显示窗口
w.show() # 4.等待窗口停止
sys.exit(app.exec())

pyqt(三)的更多相关文章

  1. 第三十三章、PyQt+moviepy实现的MP4视频转gif工具

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在写<第三十二章.使用splitDockWidget和 ...

  2. 第三十二章、使用splitDockWidget和tabifyDockWidget嵌套布局QDockWidget的PyQt人机对话案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在第<第三十一章.containers容器类部件QDo ...

  3. 第三十九章、PyQt显示部件:OpenGL Widget部件功能简介及使用其显示图片

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 OpenGL Widget部件是一个Op ...

  4. 第三十八章、PyQt输入部件:QKeySequenceEdit快捷键输入部件使用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...

  5. 第三十七章、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能介绍

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...

  6. 第三十六章、PyQt输入部件:QAbstractSpinBox派生类QSpinBox、 QDoubleSpinBox、QDateTimeEdit、QDateEdit和QTimeEdit

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Spin B ...

  7. 第三十五章、PyQt输入部件:QFontComboBox、QLineEdit、QTextEdit、QPlainText功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 输入部件量比较多,且功能很丰富,但除了用于编写编辑器.浏览器 ...

  8. 第三十四章、PyQt中的输入部件:QComboBox组合框功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 Designer中输入工具部件中的Combo Box组合框与 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中部件的三个属性sizeHint缺省尺寸、minimumSizeHint建议最小尺寸和minimumSize最小尺寸

    在Qt Designer中的每个部件,要调整部件大小,需要关注三个部件大小相关的属性:sizeHint.minimumSizeHint.minimumSize: 1.sizeHint:为布局管理器中部 ...

随机推荐

  1. React 世界的一等公民 - 组件

    猪齿鱼Choerodon平台使用 React 作为前端应用框架,对前端的展示做了一定的封装和处理,并配套提供了前端组件库Choerodon UI.结合实际业务情况,不断对组件优化设计,提高代码质量. ...

  2. python31day

    内容回顾 网编总结,思维导图 计划 并发编程的开始,计划6天 操作系统1天 进程2天 线程2天 携程1天 今日内容 操作系统 多道操作系统: 从顺序的一个个执行的思路变成:并行轮流使用cpu 一个程序 ...

  3. 计算机网络再次整理————tcp例子第二前奏[四]

    前言 前文我们介绍了网络协议的各层,同时也介绍了一下我们在编写代码时候的服务端的accept.bind.listen.connect.send做了什么. 可以说是从宏观的角度,或者代码开发的角度来说的 ...

  4. 使用XmlWriter写入XML

    麻了..整理完了发现XmlWriter不能添加元素,只能重写,还是得用Xdocument..好像DOM能实现添加元素 点击查看代码 **MemoryStream msXml = new MemoryS ...

  5. ABC231H(二分图最小权边覆盖)

    首先将行列分别抽象成 \(h, w\) 个点,每个格子视作连接两个点的一条边,那么问题就转化为了二分图最小权边覆盖问题. 考虑最后答案形如:若干组互不相交的匹配加上其他点连接到匹配内. 于此同时,不在 ...

  6. 湖人季后赛淘汰出局 - For James 2021.6.4

    今天有NBA季后赛湖人主场对太阳的G6比赛,之前湖人2-3落后,这场比赛输了就被淘汰了.上午特意看了比赛的直播,期望着湖人能赢下这场,这样还有打G7的机会,也就还有进入下一轮的机会.最后湖人还是输了这 ...

  7. js instanceof 解析

    js中的instanceof运算符 概述 instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上 语法 obj instanceofOb ...

  8. ldconfig及LD_LIBRARY_PATH

    ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令:ldconfig.ldconfig 命令的用途,主要是在默认搜寻目录 (/lib和/usr/lib ...

  9. Spark算子 - aggregate

    释义 将每个partition内元素进行聚合,然后将每个partition的聚合结果进行combine,得到最终聚合结果.最终结果允许跟原始RDD类型不同 方法签名如下: def aggregate[ ...

  10. Redis和数据库的数据一致性问题

    在数据读多写少的情况下作为缓存来使用,恐怕是Redis使用最普遍的场景了.当使用Redis作为缓存的时候,一般流程是这样的. 如果缓存在Redis中存在,即缓存命中,则直接返回数据 如果Redis中没 ...