콤보 상자 팝업 메뉴에서 프로그램 목록 및 해당 아이콘을 표시해야하는 응용 프로그램을 작성 중입니다.아이콘이 오른쪽에 표시되는 콤보 상자 항목에 아이콘 추가
다음과 같은 시도를했습니다. a. 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 아이콘 ("Sample.png");
myComboBox->insertItem(0, icon, Name);
질문은 방법 I은 위에서 사용 넣으면, 그 좌측에있는 아이콘을 삽입 (명칭 하였다 .. 즉, 아이콘). 는 어떻게 아이콘 오른쪽에 와서
감사 Santhosh는
응답 해 주셔서 감사합니다. – user2111197
답변 해 주셔서 감사합니다. QAbstractItemModel에는 "QAbstractTableView"및 "QAbstractListView"라는 2 개의 변형이 있습니다. 어느 것을 사용 하시겠습니까? 우리의 커스텀 모델에 QStyleOptionViewItem을 적용하는 방법. 예를 들어 게시하십시오. "QAbstractListView"를 사용하고 data()에 QPixmap (DecorationRole의 경우) 및 QString (DisplayRole의 경우)을 반환하는 코드를 추가했습니다. 아이콘은 여전히 오른쪽에 오지 않습니다. 우리 모델에 QStyleOptionViewItem을 적용하는 방법 – user2111197
죄송합니다. 모델의 코드와 뷰의 코드가 섞여 있습니다. 내 대답의 마지막 부분에있는 모든 코드는 뷰에 작성되어야하므로 setModel을 통해이 동작을 'QComboBox'로 설정할 수 없습니다. 죄송합니다. – Amartel