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

时间:2019-02-19 07:27:06

标签: c++ qt qtableview qabstractitemmodel

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

Imgur

我的方向是什么,应该如何执行?

1 个答案:

答案 0 :(得分: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,则图标下方将显示文本:

Imgur

传递NULL作为QString参数:

Imgur