当用户展开QComboBox控件的下拉列表时,可以发出下拉信号QComboBox::currentIndexChanged(int)
。可以使用此信号来响应用户展开下拉列表的操作。
以下是一个简单的例子:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建窗口
QWidget window;
window.setWindowTitle("Combo Box");
// 创建QComboBox控件
QComboBox comboBox(&window);
// 添加选项
comboBox.addItem("Option 1");
comboBox.addItem("Option 2");
comboBox.addItem("Option 3");
// 响应currentIndexChanged()信号
QObject::connect(&comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), [&](){
qDebug() << "Index changed: " << comboBox.currentIndex();
QString selectedText = comboBox.currentText();
qDebug() << "Selected item: " << selectedText;
});
// 设置布局
QVBoxLayout layout(&window); // 垂直布局器
layout.addWidget(&comboBox); // 添加控件到布局中
window.show();
return app.exec();
}
在这个例子中,我们创建了一个QWidget对象作为窗口,并创建了一个QComboBox对象作为其中的一个子组件。
然后,我们添加了三个选项到QComboBox控件中,并连接了currentIndexChanged()信号和一个lambda表达式。在lambda表达式中,我们获取当前选择的文本并输出它。
最后,我们将QComboBox添加到垂直布局器中,并将QWidget显示出来。
这样就可以响应QComboBox控件的下拉信号了。