如何在Qt中向QComboBox添加图标?

10

我想在 Qt 的 QComboBox 中添加一个带有文本的图标,我该如何实现它?

2个回答

12

更新:基于Qt 5.13(2019年发布),现在有一个专门的API用于此:

void QComboBox::addItem(const QIcon &icon, const QString &text)

或者如果您想指定索引:

void QComboBox::insertItem ( int index, const QString & text)
void QComboBox::setItemIcon ( int index, const QIcon & icon )

这次更新的所有功劳都归功于用户Soyal7提出了建议。原来的回答,特别是针对旧版本仍然适用:

你可以使用以下API:

void QComboBox::insertItem ( int index, const QString & text, const QVariant & userData = QVariant() )
void QComboBox::setItemIcon ( int index, const QIcon & icon )

http://doc.qt.io/qt-5/qcombobox.html#insertItem
http://doc.qt.io/qt-5/qcombobox.html#setItemIcon

针对代码片段,只需像这样简单:

void AddItem(QComboBox* combo, QString itemName, QIcon* icon)
{
    combo->insertItem(0, itemName);
    combo->setItemIcon(0, *icon);
}

4
您可以简单地使用(Qt5),例如:
   QIcon icon = QIcon::fromTheme("edit-undo");
   QString label = "foo";
   combo->addItem( icon, label );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接