0

プログラム名のリストと対応するアイコンをコンボボックスポップアップメニューに表示する必要があるアプリケーションに取り組んでいます。

私は次のことを試しました:QCombobox から派生したカスタム ウィジェットを作成しました。次のように 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します。function を使用して、標準モデルをカスタム モデルに置き換えることができますvoid QComboBox::setModel ( QAbstractItemModel * model )

テキストに対するアイコンの位置は、スタイル オプションによって制御されます。次のようにする必要があります。

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