0
我想要均匀地填充正在使用的iconMode中的QListWidget的视口来获取物品的网格布局。如何调整QListWidget的gridSize以使项目均匀填充viewPort?
一切工作正常,但问题是调整mainWindow时,listWidget等待获取宽度,使行中的新项目可以获得空间。显示在下面的图片:
这是我试过到目前为止
void MainWindow::resizeEvent(QResizeEvent* event)
{
if(ui->listWidget->count()>0){
float items_that_can_fill_view = ui->listWidget->width() /(330+ui->listWidget->spacing());
float total_width_of_items = items_that_can_fill_view*330;
float remaining_width = ui->listWidget->width()-total_width_of_items;
float evenly_distributed_width = remaining_width/items_that_can_fill_view;
ui->listWidget->setGridSize(QSize(330+evenly_distributed_width,ui->listWidget->item(0)->sizeHint().height()));
}
event->accept();
}
在上面的代码通过调整在应用程序运行时我改变了gridSize mainWindow的宽度。我选择了float而不是int类型来非常精确地进行更改。 330也是listWidget中每个项目的宽度。
请帮忙。
我正在使用Qt 5.8。
你想舒展从图1中两列,以填补整个宽度或添加第三列如图2所示那样裁剪?还是你想调整窗口的大小以适应上一句中描述的2个现有列的宽度? – SteakOverflow
我想把这个空白宽度分割成listview的网格大小。 –
记住网格大小和项目大小是不同的。 –