已解决
QComboBox的信号
来自网友在路上 176876提问 提问时间:2023-11-08 18:54:53阅读次数: 76
最佳答案 问答题库768位专家为你答疑解惑
QComboBox的最重要的信号activated和currentIndexChanged
两个信号的区别:
QComboBox::activated信号发射在用户打开选择了选项后,即便选项与当前选项一致,也会发射该信号
QComboBox::currentIndexChanged信号只在选项发生了变化的时候
这两个信号的发射顺序为,先QComboBox::currentIndexChanged
再QComboBox::activated
QComboBox* cbx=new QComboBox;
cbx->addItems(QStringList()<<"1"<<"2"<<"3");//先发出currentIndexChanged信号,再发出activated信号
connect(cbx,QOverload<int>::of(&QComboBox::currentIndexChanged),[]{qDebug()<<"QOverload<int>::of(&QComboBox::currentIndexChanged)";
});connect(cbx,QOverload<int>::of(&QComboBox::activated),[]{qDebug()<<"QOverload<int>::of(&QComboBox::activated)";
});
两个下拉框相互关联的问题
经常会有这样的需求:
将两个下拉框变化的信号相互关联上,使得任意一个下拉框被用户手动选择更改后,另外一个下拉框联动变化。
这里会有下拉框1改变导致下拉框2改变,下拉框2改变再导致下拉框1改变的死循环吗?
为什么不会?
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{QWidget* center=new QWidget;QHBoxLayout* hlayout=new QHBoxLayout(center);QComboBox* cbx=new QComboBox;hlayout->addWidget(cbx);QComboBox* cbx2=new QComboBox;hlayout->addWidget(cbx2);cbx->addItems(QStringList()<<"1"<<"2"<<"3");cbx2->addItems(QStringList()<<"a"<<"b"<<"c");//将两个下拉框变化的信号相互关联上//使得任意一个下拉框被用户手动选择更改后,另外一个下拉框联动变化connect(cbx,QOverload<int>::of(&QComboBox::currentIndexChanged),[=]{qDebug()<<"1:QOverload<int>::of(&QComboBox::currentIndexChanged)";cbx2->setCurrentIndex(cbx->currentIndex());});connect(cbx2,QOverload<int>::of(&QComboBox::currentIndexChanged),[=]{qDebug()<<"2:QOverload<int>::of(&QComboBox::currentIndexChanged)";cbx->setCurrentIndex(cbx2->currentIndex());});this->setCentralWidget(center);
}
不会造成死循环的原因在于两个下拉框的下拉项数码一致,而且每次关联后的序号也一致。
而且下拉框的setCurrentIndex()方法设置一个当前正处于的序号是不会发出currentIndexChanged信号的。所以不会存在循环发送信号的问题。
查看全文
99%的人还看了
相似问题
- 【PyQt小知识 - 3】: QComboBox下拉框内容的设置和更新、默认值的设置、值和下标的获取
- 【vue】封装树形下拉框组件 el-popover+el-tree+el-select
- antd+全屏的坑(全屏下a-modal/下拉框等不展示)
- 在el-dialog中使用tinymce 点击工具栏下拉框被遮挡
- QWidget快速美化-蓝边白字下拉框
- sql语句数据库查询:如果当前元素已经使用过,下拉框不显示该元素该如何查询?
- elementui select组件下拉框底部增加自定义按钮
- 前端uniapp如何修改下拉框uni-data-select下面的uni-icons插件自带的图片【修改uniapp自带源码图片/图标】
- vue3 + elementPlus实现select下拉框插入确定和取消按钮。
- 【vue+elementUI】输入框样式、选择器样式、树形选择器和下拉框样式修改
猜你感兴趣
版权申明
本文"QComboBox的信号":http://eshow365.cn/6-35502-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!