QT点击按钮在它上方显示一个列表,每一个选项点击后获取值
时间: 2024-03-09 17:44:31 浏览: 48
你可以使用QComboBox控件来实现一个下拉列表的显示,并且可以在每个选项被点击时获取其值。以下是示例代码:
```cpp
// 在按钮的槽函数中创建一个下拉列表并添加一些项
void MainWindow::on_button_clicked()
{
QComboBox *comboBox = new QComboBox(this);
comboBox->addItem("Item 1");
comboBox->addItem("Item 2");
comboBox->addItem("Item 3");
comboBox->addItem("Item 4");
// 使用QComboBox的currentIndexChanged()信号来获取选项的值
connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),
[=](int index) {
QString value = comboBox->itemText(index);
qDebug() << "Selected value: " << value;
});
// 将下拉列表显示在按钮上方
QPoint pos = ui->button->mapToGlobal(QPoint(0, ui->button->height()));
comboBox->move(pos);
comboBox->show();
}
```
在这个例子中,我们在按钮的槽函数中创建了一个QComboBox控件,并为它添加了四个选项。然后,我们使用connect()函数连接了QComboBox的currentIndexChanged()信号,以便在选项被点击时获取其值。最后,我们使用mapToGlobal()函数将按钮底部的坐标转换为全局坐标,然后将下拉列表移动到按钮上方并显示出来。
当用户选择一个选项时,currentIndexChanged()信号将被触发,并且我们可以通过调用itemText()函数来获取选项的文本值。在这个例子中,我们将选项的文本值输出到调试控制台中,你可以根据自己的需要进行处理。
阅读全文