2017-11-04 94 views
1

目前我有一個視圖模式設置爲圖標 一個QListWidget有沒有使用自定義窗口小部件或繪畫,而不是圖標QT更換ListWidget的圖標,自定義部件

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不從QWidget的繼承。所以你不能使用小部件而不是項目(顯示爲文本/圖標)。 – scopchanov

+2

如果您想覆蓋(列表)項目的顯示,請查看[QStyledItemDelegate](http://doc.qt.io/qt-5/qstyleditemdelegate.html)。 – Scheff

回答

0

您可以使用setItemWidget顯示控件的方式在QListWidgetItem中。只要創建一個QListWidgetItem,將其添加到您的QListWidget,然後設置項目自定義窗口小部件:

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