qt C++把button加进qcombobox中
时间: 2023-11-12 16:09:05 浏览: 91
C++ combobox控件
4星 · 用户满意度95%
您可以使用`QComboBox`的`setModel`方法将一个`QStandardItemModel`设置为`QComboBox`的模型,并在该模型中添加`QStandardItem`,其中每个`QStandardItem`代表一个下拉列表项。对于每个下拉列表项,您可以将其设置为一个`QPushButton`,并将其添加到`QStandardItem`中。
以下是一个示例代码,它将一个`QComboBox`添加了两个下拉列表项,每个下拉列表项都包含一个`QPushButton`:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Create a QComboBox
QComboBox comboBox;
// Create a QStandardItemModel and set it as the model for the QComboBox
QStandardItemModel model;
comboBox.setModel(&model);
// Create the first QPushButton
QPushButton *button1 = new QPushButton("Button 1");
// Create a QStandardItem for the first item and set its data to the QPushButton
QStandardItem *item1 = new QStandardItem();
item1->setData(QVariant::fromValue<QPushButton*>(button1), Qt::DisplayRole);
// Add the QStandardItem to the model
model.appendRow(item1);
// Create the second QPushButton
QPushButton *button2 = new QPushButton("Button 2");
// Create a QStandardItem for the second item and set its data to the QPushButton
QStandardItem *item2 = new QStandardItem();
item2->setData(QVariant::fromValue<QPushButton*>(button2), Qt::DisplayRole);
// Add the QStandardItem to the model
model.appendRow(item2);
// Show the QComboBox
comboBox.show();
return app.exec();
}
```
运行这段代码,您应该会看到一个包含两个下拉列表项的`QComboBox`,每个下拉列表项都包含一个`QPushButton`。
阅读全文