六、按钮控件

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. linux不使用useradd添加新用户

    不使用useradd创建新的用户 1.进入用户特征信息:/etc/passwd 编辑: vim /etc/passwd 命令模式 :G 进入末行 进入编辑模式 :在最后添加新用户信息: 例:new_u ...

  2. JavaScript之 函数节流(Throttling) 与 防抖(Debounce)

    Throttling:在监听鼠标移动事件.盒子滚动事件等使用节流技术能节省性能消耗 /** * 节流函数(每隔t执行一次) */ function Throttling(fn, t) { const ...

  3. CSS之常见布局|常用单位|水平垂直居中

    常见布局: 1. 流式布局:百分比布局,宽高.margin.pinding都是百分比 2. 固定布局:盒子的宽高固定,如:margin.padding等 3. 浮动布局:float 4. 弹性布局:f ...

  4. Linux 配置常用工具?

    常用的软件在linux上进行配置: 修改HOSTANME vi /etc/sysconfig/network 修改HOSTNAME和IP的映射 vi /etc/hosts 关闭防火墙 service ...

  5. 如何在pyqt中实现win10亚克力效果

    亚克力效果的实现思路 上一篇博客<如何在pyqt中实现窗口磨砂效果> 中实现了win7中的Aero效果,但是和win10的亚克力效果相比,Aero还是差了点内味.所以今天早上又在网上搜了一 ...

  6. 如何在pyqt中通过OpenCV实现对窗口的透视变换

    窗口的透视变换效果 当我们点击UWP应用中的小部件时,会发现小部件会朝着鼠标点击位置凹陷下去,而且不同的点击位置对应着不同的凹陷情况,看起来就好像小部件在屏幕上不只有x轴和y轴,甚至还有一个z轴.要做 ...

  7. ApacheCN Asp.NET 译文集 20211126 更新

    ASP.NET Core2 基础知识 零.前言 一.搭建舞台 二.控制器 三.视图 四.模型 五.验证 六.路由 七.RestBuy 八.添加功能.测试和部署 ASP.NET Core3 和 Angu ...

  8. 根据指定手绘图纸照片行政区划自定义绘制对应区域边界生成geoJOSN的解决方案

    项目需求 指定某区域(非省市区县乡镇标准行政区划),做功能边界分区,实现Echarts地理坐标数据可视化展示. 提供信息 项目分析 要在Echarts上实现地理坐标可视化,必须使用geoJSON格式文 ...

  9. UIView与核心动画对比?

    1.UIView和核心动画区别?        核心动画只能添加到CALayer        核心动画一切都是假象,并不会改变真实的值.             2.什么时候使用UIView的动画? ...

  10. uniapp 使用iconfont图标

    步骤一 新建项目 步骤二 导入需要的图标,然后下载图标代码 步骤三  打开下载的压缩文件中的iconfont.css 步骤四 复制粘贴到项目中 步骤四在项目中使用 use in page