将图标添加到Combobox项目,使图标在右侧可见

时间:2013-04-01 13:36:33

标签: qt

我正在开发一个应用程序,我需要在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

1 个答案:

答案 0 :(得分:0)

QComboBox使用QAbstractModel来显示数据。您可以使用函数void QComboBox::setModel ( QAbstractItemModel * model )替换标准模型。

通过样式选项控制与文本相关的图标位置。你应该这样做:

QStyleOptionViewItem option;
option.decorationAlignment = Qt::AlignRight | Qt::AlignVCenter;
option.decorationPosition = QStyleOptionViewItem::Top;