目录
- 1、activated
- 1.1 原型
- 1.2 触发机制
- 1.3 使用场景
- 1.4 连接信号和槽的方法
- 1.4.1 方式一
- 1.4.2 方式二
- 2、currentIndexChanged
- 2.1 原型
- 2.2 触发机制
- 2.3 使用场景
- 2.4 连接信号和槽的方法
1、activated
1.1 原型
[signal] void QComboBox::activated(int index)
[signal] void QComboBox::activated(const QString& text)
index
:当前选项索引text
:当前选项的文本
1.2 触发机制
activated
信号在用户从下拉列表中选择一个选项时发射,不管QComboBox
的当前索引是否发生改变都会发射。(注:在程序里设置当前索引不会触发activated
信号,activated
信号只会在用户与QComboBox
交互操作过程中触发)
1.3 使用场景
activated
信号通常用于在用户选择一个选项时执行某些操作,比如打开一个对话框、更新某个数据模型等。
1.4 连接信号和槽的方法
因为activated
信号在QComboBox
类中有重载,使用QT5
常规的链接方式(如下所示),因为不能明确指定具体是哪个重载函数,所以编译时会报错。
QObject::connect(&comboBox, &QComboBox::activated, this, &Dialog::slot1);
对于这种有重载的信号,要正确连接槽,有两种方式:
1.4.1 方式一
使用QT4的连接方法。如下所示:
QObject::connect(&comboBox, SIGNAL(activated(int)), this, SLOT(slot1(int));
或
QObject::connect(&comboBox, SIGNAL(activated(const QString&)), this, SLOT(slot1(const QString&));
1.4.2 方式二
使用QT文档推荐的方法,使用函数指针来连接信号与槽。如下所以:
connect(comboBox, QOverload<int>::of(&QComboBox::activated), this, this, &Dialog::slot1);
2、currentIndexChanged
2.1 原型
[signal] void QComboBox::currentIndexChanged(int index)
[signal] void QComboBox::currentIndexChanged(const QString& text)
index
:当前选项索引text
:当前选项的文本
2.2 触发机制
currentIndexChanged
信号在QComboBox
类的currentIndex
属性发生改变时发射,不论这个改变是由用户操作还是程序设置引起的。(注:如果进行了用户操作或程序设置,但是currentIndex
属性值没有变化,该信号依然是不发射的)
2.3 使用场景
currentIndexChanged
信号通常用于在当前索引变化时更新与QComboBox
相关的其他界面元素或执行某些操作。
2.4 连接信号和槽的方法
currentIndexChanged
信号在QComboBox
类中也是有重载,处理方法与activated
信号类似。