当用户动态调整QTableView的大小时,是否可以更改QTableView中的列数?例如,我有9个数字1-9的图像,我有一个带有自定义委托的QTableView,它将图像绘制到表格的单元格中,我希望QTableView的行为类似于下图中的方式:
我的方向应该是什么?我该如何实施?
这是我的解决方案代码:
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参数传递: