栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

qt 信号多个链接槽

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qt 信号多个链接槽

当有多个信号函数(Signal)绑定同一个槽函数(Slot)时,你会有这样的需求,在槽函数中我希望知道到底是哪个信号函数发送出来的信号,这样根据不同的发送者来执行不同的操作。想实现这个功能可以在槽函数中调用 sender() 方法获取发送信号的对象类型。然后进行处理,具体代码如下:

【代码实现】

Notice:代码只贴出了关键部分,只为了演示功能而已。

#include "cwidget.h"

CWidget::CWidget(QWidget *parent) : QWidget(parent)

{

_button1 = new QPushButton("button1", this);

_button2 = new QPushButton("button2", this);

_button1->setFixedSize(100, 30);

_button2->setFixedSize(100, 30);

_button2->setGeometry(QRect(105, 0, 100, 30));

// 两个按钮同时绑定一个槽函数

connect(_button1, SIGNAL(clicked(bool)), this, SLOT(slotRecv()));

connect(_button2, SIGNAL(clicked(bool)), this, SLOT(slotRecv()));

}

void CWidget::slotRecv()

{

// 获取发送信号的对象存放到 QObject 基类对象中

QObject* obj = sender();

// 把基类对象强制转换成子类对象

QPushButton* button = dynamic_cast(obj);

// 获取子类对象文本可以判断出是点了哪个按钮

qDebug() << button->text();

}

相关

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号