2

我想在 QCombobox 小部件的左侧设置图标。我知道我可以先插入一个项目,然后设置插入项目的图标,然后选择这个新插入的项目。但是,出于特殊原因,我不想在下拉列表中插入新项目。Windows ComboBox 控件允许我们通过使用-1 的索引来更改编辑框的图标。我不知道如何使用 QCombobox 来实现。

感谢您的任何评论!

4

1 回答 1

1

我自己从未尝试过,但这是一个想法。

QComboBox 基于 Qt 的模型/视图框架,因此项目包含在QStandardItemModel中,可以使用QComboBox::model().

步骤是:

  • 实例化一个QStandardItem
  • 在 QStandardItem 上使用setIcon()and setText()(或使用正确的 ctor)
  • 当您要将项目添加到组合列表时,请将其附加到模型中。

例子:

QStandardItem* item = new QStandardItem(theIcon, theText);
[...]
QStandardItemModel* comboModel = qobject_cast<QStandardItemModel*>(theCombo->model());
comboModel->appendRow(item);
于 2012-03-08T09:50:00.217 回答