Qt多个信号连接到一个槽里,在槽中通过方法确定信号来源
发布时间
阅读量:
阅读量
Qt基于信号与槽的方式实现事件传递功能,在同一时间接收不同类别或同类别的触发事件时,则应在接收端对这些触发事件进行检测并随后执行相应的操作。
例如:
在一个界面上包含16个QPushButton按钮以及4个QRadioButton对象;这些对象在其clicked(bool)事件被触发时会连入同一个按键,并通过connect函数与get_keyvalue(void)处理槽实现关联。
为了实现这一目标,在get_keyvalue这个槽中识别出所有的信号来源,并提取对应的键值后进行发送操作的具体方法如下:
void FBx::get_keyvalue(bool)
{
if (QPushButton* btn = dynamic_cast<QPushButton*>(sender())){
send_key(btn->whatsThis());
}
else if (QRadioButton *rtn = dynamic_cast<QRadioButton*>(sender())){
send_key(rtn->whatsThis());
}
}
在slot中调用sen
全部评论 (0)
还没有任何评论哟~
