Qt sender()函数

sender函数原型:

复制代码
QObject *sender() const;

如果在由信号激活的插槽中调用该函数,返回指向发送信号的对象的指针,否则返回0,该指针仅在从该对象的线程上下文调用此函数的槽执行期间有效。

主要代码如下:

其中运用了QList类直接foreach循环连接槽函数或者每个按钮都连接

复制代码
QList<QPushButton *> btnColor; //此代码写入MainWindow.h文件中


btnColor << ui->btn_1 << ui->btn_2 << ui->btn_3 ;
foreach (QPushButton *btn, btnColor) {
    connect(btn, SIGNAL(clicked(bool)), this, SLOT(changeColor()));
}


//connect(ui->btn_1, &QPushButton::clicked, this, &changeColor);
//connect(ui->btn_2, &QPushButton::clicked, this, &changeColor);
//connect(ui->btn_3, &QPushButton::clicked, this, &changeColor);

//槽函数
void MainWindow::changeColor()
{
    QPushButton *pBtn = (QPushButton*)sender();
    QMessageBox::about(this, "tips", pBtn->text());

    int index = btnColor.indexOf(pBtn);

    qDebug() << "index == " << index ;

}

mainWindow.ui

结果:每个按键对应着每个按键的截图;index就是按照上面的btnColor依次排序,btn_1的序号为0,btn_2的序号为1,btn_3的序号为2.

参考:Qt sender()用法详解-CSDN博客

相关推荐
MediaTea几秒前
Python 第三方库:SymPy(符号计算工具)
开发语言·python·数学建模
他们都不看好你,偏偏你最不争气9 分钟前
【iOS】UIViewController
开发语言·macos·ios·objective-c·cocoa
Pocker_Spades_A19 分钟前
Python快速入门专业版(二十二):if语句进阶:嵌套if与条件表达式(简洁写法技巧)
开发语言·python
看海的四叔32 分钟前
【Python】Python解决阿里云DataWorks导出数据1万条限制的问题
开发语言·python·阿里云·dataworks·maxcomputer
吾日三省吾码32 分钟前
用 Python UTCP 直调 HTTP、CLI、MCP……
开发语言·python·http
zcz16071278211 小时前
LVS + Keepalived 高可用负载均衡集群
java·开发语言·算法
Bellafu6661 小时前
项目中遇到pom文件里使用systemPath的例子记录
开发语言
爱喝水的鱼丶2 小时前
SAP-MM:SAP采购组织全面学习指南:从概念到实战配置图解
运维·开发语言·数据库·学习·sap·mm模块·采购组织
楼田莉子2 小时前
Python学习——字典和文件
开发语言·python·学习·pycharm
知彼解己2 小时前
字符串大数相加:从初稿到优化的思路演进
java·开发语言·算法