0

我正在开发一个应用程序,我需要在组合框弹出菜单中显示程序名称列表和相应的图标。

我尝试了以下事情:创建了从 QCombobox b 派生的自定义小部件。重新实现了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() );
}

C。将项目添加到组合框 QString Name = "XYZ"; QIcon icon("Sample.png");

    myComboBox->insertItem(0, icon, Name);

问题是:当我使用上述方法插入时,它会在左侧插入图标(即图标后跟名称)。如何使图标出现在右侧(即,名字后跟图标)

问候桑托什

4

1 回答 1

0

QComboBox用于QAbstractModel显示数据。您可以使用函数将标准模型替换为自定义模型void QComboBox::setModel ( QAbstractItemModel * model )

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

QStyleOptionViewItem option;
option.decorationAlignment = Qt::AlignRight | Qt::AlignVCenter;
option.decorationPosition = QStyleOptionViewItem::Top;
于 2013-04-01T18:10:58.593 回答