Advertisement

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)

还没有任何评论哟~