QSignalMapper 信号转发器
来源:互联网 发布:模拟科目三练车软件 编辑:程序博客网 时间:2024/05/16 12:09
当类似的控件(eg btn)需连接类似的信号槽时,如果写n个connect与n个信号槽函数太麻烦了,此时便用到了QSignalMapper.先举一个项目中用到的例子: QSignalMapper* pSignalMapperRotate = new QSignalMapper(this);for (int i = 0; i < AdjustRotate_Btn_Count; ++i){ bConnect = connect(m_pBtnAdjustRotate[i], SIGNAL(clicked()), pSignalMapperRotate, SLOT(map())); Q_ASSERT(bConnect); pSignalMapperRotate->setMapping(m_pBtnAdjustRotate[i], i/* + 1*/);}bConnect = connect(pSignalMapperRotate, SIGNAL(mapped(int)), this, SLOT(SlotAdjustRotateBtnsClicked(int)));Q_ASSERT(bConnect);
槽函数为:
void DxTreatedToNontreatedFineTunePanel::SlotAdjustRotateBtnsClicked(int nId)
{
DxLOG_FUNC_TRACE();
FineTuneXYZType eFineTuneXYZType = e_Unknown_FineTuneXYZ;
if (Btn_X_AdjustRotate == nId)
{
eFineTuneXYZType = e_X_FineTuneXYZ;
}
else if (Btn_Y_AdjustRotate == nId)
{
eFineTuneXYZType = e_Y_FineTuneXYZ;
}
else if (Btn_Z_AdjustRotate == nId)
{
eFineTuneXYZType = e_Z_FineTuneXYZ;
}
else if (Btn_X_Anti_AdjustRotate == nId)
{
eFineTuneXYZType = e_X_Anti_FineTuneXYZ;
}
QString strValue = m_pLineEditAdjustValue->text();
double dCurEditAdjustValue = dZero;
dCurEditAdjustValue = strValue.toDouble();
m_pFineTuneModel->SetFineTuneValue(dCurEditAdjustValue);
m_pFineTuneModel->SetFineTuneXYZType(eFineTuneXYZType);
}
理解:
QSignlMapper的作用是整体的作用是通过一个无参的信号转化成有参的信号,然后传给槽函数进行操作
两个connect,一个setMapping是必须的
QSignalMapper* pSignalMapperRotate = new QSignalMapper(this);有一次实例化的时候,没有指定parent,造成了内存泄漏
- QSignalMapper 信号转发器
- 【QT开发】信号转发器QSignalMapper的使用
- QT中QSignalMapper类信号转发器的使用和说明
- QSignalMapper 信号映射
- QSignalMapper信号转接器的应用
- QSignalMapper
- QSignalMapper
- QSignalMapper
- QSignalMapper
- QSignalMapper
- QSignalMapper
- QSignalMapper
- GPS信号转发器,GPS信号覆盖,GPS信号放大器,GPS信号增强器
- 巧用QSignalMapper分类有序地处理大量信号
- 巧用QSignalMapper分类有序地处理大量信号
- 巧用QSignalMapper分类有序地处理大量信号
- QT 巧用QSignalMapper分类有序地处理大量信号
- 巧用QSignalMapper分类有序地处理大量信号
- 深入理解javascript原型和闭包(4)——隐式原型
- jQuery插件之ajaxFileUpload
- android开发之神兵利器-androidstudio
- spring官网下载spring的jar包、源码包、文档
- Python量化交易平台开发教程系列3-vn.py项目中API封装的编译
- QSignalMapper 信号转发器
- lucene的pom.xml
- Canvas:绘制文本
- 我要来这里记录我的生活啦
- centos6.5的网卡的设置
- Python量化交易平台开发教程系列4-事件驱动引擎原理和使用
- linux下设置环境变量
- js获取input上传文件名和后缀
- log4cplus库(简单使用)