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去美化下哦。