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博客

相关推荐
会编程的土豆1 分钟前
01背包与完全背包详解
开发语言·数据结构·c++·算法
lbb 小魔仙7 分钟前
Python_多模态大模型实战指南
开发语言·python
XDHCOM22 分钟前
Python os.system() 和 subprocess 怎么选?运行系统命令哪个更好用?
开发语言·网络·python
xixixi777771 小时前
AI自主挖洞 + 通信网络扩散:全域风险指数级放大,如何构建密码-沙箱-终端联动闭环?
开发语言·网络·人工智能·ai·大模型·php·通信
小碗羊肉1 小时前
【从零开始学Java | 第三十五篇】IO流-字节流
java·开发语言
csbysj20202 小时前
SOAP Fault 元素
开发语言
Soari2 小时前
Ziggo-CaaS-Switch软件配置: undefined reference to pthread_create
java·开发语言·fpga开发·tsn·zynq·交换机配置
wjs20242 小时前
jEasyUI 树形网格动态加载详解
开发语言
xlq223222 小时前
41.线程封装与互斥
linux·开发语言
不爱吃炸鸡柳2 小时前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法