Qt實現網格顯示(圖標文本)功能
先上圖看看效果:
上代碼:
QStandardItemModel *pModel = new QStandardItemModel(this);
for (int i = 0; i < 32; ++i)
{
QStandardItem *pItem = new QStandardItem(QIcon(QString(":/new/images/images/0%1[24x24x8BPP].png").arg(3502 + i % 32)), QStringLiteral("哈哈哈哈哈哈哈哈"));
pModel->appendRow(pItem);
}
QListView *pView = new QListView(this);
pView->setModel(pModel);
pView->setWrapping(true); //文本超出顯示 ...
// pView->setWordWrap(true); //文本超出換行顯示
pView->setFlow(QListView::LeftToRight);
pView->setViewMode(QListView::IconMode); //顯示上圖標,下文本樣式
pView->setResizeMode(QListView::Adjust); //view大小變化,裏面的item重新佈局
pView->setEditTriggers(QAbstractItemView::NoEditTriggers); //編輯
pView->setMovement(QListView::Snap); // 設置item移動
// pView->setIconSize(QSize(64, 64));
// pView->setUniformItemSizes(true); //item一樣大
pView->setGridSize(QSize(64, 64));
效果就是這樣,樣式不夠好看,可以使用qss去美化下哦。