我正在开发一个应用程序,我需要在Combobox弹出菜单中显示程序名称列表和相应的图标。
我试过以下事情: 一个。创建了源自QCombobox的Custom Widget 湾重新实现showPopup()函数,如下所示
void CMyComboBox::showPopup()
{
QComboBox::showPopup();
mp_Popup = this->findChild<QFrame *>();
mp_Popup->move( mp_Popup->x(), mp_Popup->y() - this->height() - mp_Popup->height() );
}
℃。将项目添加到Combobox QString Name =“XYZ”; QIcon图标(“Sample.png”);
myComboBox->insertItem(0, icon, Name);
问题是:当我使用上面的方法插入时,它会在左侧插入Icon(即..,Icon后跟Name)。 如何使图标进入右侧(即..,名字后跟图标)
此致 Santhosh
答案 0 :(得分:0)
QComboBox
使用QAbstractModel
来显示数据。您可以使用函数void QComboBox::setModel ( QAbstractItemModel * model )
替换标准模型。
通过样式选项控制与文本相关的图标位置。你应该这样做:
QStyleOptionViewItem option;
option.decorationAlignment = Qt::AlignRight | Qt::AlignVCenter;
option.decorationPosition = QStyleOptionViewItem::Top;