如何在调整QTableView大小时动态更改列数?

问题描述 投票:2回答:1

当用户动态调整QTableView的大小时,是否可以更改QTableView中的列数?例如,我有9个数字1-9的图像,我有一个带有自定义委托的QTableView,它将图像绘制到表格的单元格中,我希望QTableView的行为类似于下图中的方式:

我的方向应该是什么?我该如何实施?

c++ qt qtableview qabstractitemmodel
1个回答
0
投票

这是我的解决方案代码:

QListViewIconModeLtoRFlow::QListViewIconModeLtoRFlow(QWidget *parent): QMainWindow(parent)
{
    ui.setupUi(this);

    QFrame *frame = new QFrame;
    QVBoxLayout *main = new QVBoxLayout(frame);

    QListView *list = new QListView;
    list->setFlow(QListView::LeftToRight);
    list->setResizeMode(QListView::Adjust);
    list->setViewMode(QListView::IconMode);
    list->setIconSize(QSize(50,50));

    QStandardItemModel *model = new QStandardItemModel;
    list->setModel(model);

    for (int i = 0; i < 50; ++i)
    {
        QPixmap p("F:\\boro.jpg");
        QIcon *icon = new QIcon(p);
        QStandardItem *item = new QStandardItem(*icon, NULL); //NULL to hide string appearance
        model->appendRow(item);
    }
    main->addWidget(list);
    setCentralWidget(frame);
}

如果像往常一样构造QStandardItem,则文本将出现在图标下方:

将NULL作为QString参数传递:

© www.soinside.com 2019 - 2024. All rights reserved.