我想在 Qt 的 QComboBox
中添加一个带有文本的图标,我该如何实现它?
更新:基于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);
}
QIcon icon = QIcon::fromTheme("edit-undo");
QString label = "foo";
combo->addItem( icon, label );