2017-11-04 1 views
1

zur Zeit habe ich eine QListWidget mit viewmode gesetzt to Icon ist es eine Möglichkeit, ein eigenes Widget oder Malerei zu verwenden, anstatt SymbolQT Ersetzen ListWidget die Icons mit benutzerdefinierten Widget

mTestLV = new QListWidget; 

mTestLV->setIconSize(QSize(128, 128)); 
mTestLV->setViewMode(QListView::ViewMode::IconMode); 

auto icon = QIcon("../../Resources/PCPP.jpg"); 

for (size_t i = 0; i < 64; i++) 
    mTestLV->addItem(new QListWidgetItem(icon, "naaaame")); 
+1

QListWidgetItem erbt nicht von QWidget. Sie können also keine Widgets anstelle von Elementen (angezeigt als Text/Symbol) verwenden. – scopchanov

+2

Wenn Sie die Anzeige von (Listen-) Elementen überschreiben möchten, sehen Sie sich bitte [QStyledItemDelegate] (http://doc.qt.io/qt-5/qstyleditemdelegate.html) an. – Scheff

Antwort

0

Sie setItemWidget verwenden können, ein Widget angezeigt werden in einem QListWidgetItem. Nur eine QListWidgetItem erstellen, fügen Sie sie QListWidget, dann setzen Sie Ihre individuelle Widget auf dem Artikel:

QListWidgetItem *item = new QListWidgetItem(); 
CustomWidget *custom = new CustomWidget(); 
mTestLV->addItem(item); 
mTestLV->setItemWidget(item, custom); 
Verwandte Themen