Qt实现网格显示(图标文本)功能

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章