Qt sender()用法详解
sender()是QObject类的方法,声明如下:
QObject *sender() const;
Qt助手的解释如下:
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. The pointer is valid only during the execution of the slot that calls this function from this object's thread context.
翻译如下:
如果在由信号激活的插槽中调用该函数,返回指向发送信号的对象的指针,否则返回0,该指针仅在从该对象的线程上下文调用此函数的槽执行期间有效。
我写了一个demo测试,界面上有3个按钮,都绑定同一个槽函数,点击之后弹出各自的按钮名字,界面如下:
项目名称test_sender,头文件test_sender.h如下:
#pragma once#include <QtWidgets/QMainWindow>
#include "ui_test_sender.h"class test_sender : public QMainWindow
{Q_OBJECTpublic:test_sender(QWidget *parent = Q_NULLPTR);public slots:void onFunc();private:Ui::test_senderClass ui;
};
test_sender.cpp
#include "test_sender.h"
#include <QMessageBox>test_sender::test_sender(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);connect(ui.btn1, &QPushButton::clicked, this, &test_sender::onFunc);connect(ui.btn2, &QPushButton::clicked, this, &test_sender::onFunc);connect(ui.btn3, &QPushButton::clicked, this, &test_sender::onFunc);
}void test_sender::onFunc()
{QPushButton *pBtn = (QPushButton*)sender();QMessageBox::about(this, "tips", pBtn->text());
}
在槽函数中返回按钮的对象指针,从而可以操作该按钮,调用它的一些方法,属性等。
运行结果,点击按钮1
点击按钮2
点击按钮3
sender的用法也可以用在别的控件上,如果项目有需要可以这样使用。
Qt sender()用法详解相关推荐
- Qt Creator用法详解
Qt自带集成开发环境(IDE),名为Qt Creator.它可以在Linux.OS X和Windows上运行,并提供智能代码完成.语法高亮.集成帮助系统.调试器和剖析器集成,还集成了所有主要的版本控制 ...
- Qt QPlainTextEdit用法详解
QPlainTextEdit 是一个多行文本编辑器,用于显示和编辑多行简单文本.另外,还有一个 QTextEdit 组件,是一个所见即所得的可以编辑带格式文本的组件,以 HTML 格式标记符定义文本格 ...
- Qt QLineEdit单行输入框用法详解
Qt QLineEdit单行输入框用法详解 QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中, ...
- Qt QPushButton按钮用法详解
Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...
- Qt QListWidget列表框用法详解
Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...
- ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解
一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...
- 教程-Delphi中Spcomm使用属性及用法详解
Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...
- QT QtableView操作详解
本文实现了使用QtableView控件来显示数据,数据源使用txt文本作为数据源,使用了QStandardItemModel作为数据模型来实现了对TableView空间的初始化,和对txt数据源的增删 ...
- emit python 作用_PyQT5 emit 和 connect的用法详解
对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...
最新文章
- 用面粉和醋洗头 让你的头发黑亮又浓密
- c语言休眠函数useconds类型,带你了解C语言中的Sleep函数(附代码)
- 如何基于LSM-tree架构实现一写多读
- python3的输出函数_教女朋友学Python3(二)简单的输入输出及内置函数查看
原创...
- move_uploaded_file返回false但实际成功_023 Spring Boot 搭建实际项目开发框架
- IIS启用GZip压缩
- php workman实现socket服务及客户端连接
- mobi格式电子书_中英文电子书下载网站大搜罗
- 精选PHP毕业设计12套——源码+论文完整资源
- 计算机网络基础知识总结,就这一篇了
- 马尔可夫链模型--通俗
- 王道机试 第十二章 动态规划 12.5 背包问题(0-1背包,完全背包,多重背包)
- 2017年信息学奥赛NOIP普及组试题
- 使用Mediapipe制作抖音特效
- 通俗总结python的继承机制:由内而外、先到先得
- poscms会员头像更新接口
- Linux中常用的英文总结
- 一个操作系统的实现(8)进程间通信
- NOIP2017模拟赛(4) 总结
- spark Streaming 流计算