可以使用QTableWidget的resizeColumnsToContents()和resizeRowsToContents()方法来使得表格大小适应内容。
例如,如果想要让所有列宽自适应内容,则可以这样:
tableWidget->resizeColumnsToContents();
如果想要让所有行高自适应内容,则可以这样:
tableWidget->resizeRowsToContents();
注意:在调用上述方法之前,需要确保表格中已经有数据填充了。否则,调用这些方法不会产生任何效果。
同时,还可以通过设置QHeaderView的ResizeMode属性来控制列宽的调整方式。例如,将列宽自适应内容时的默认调整方式修改为“按比例分配”,可以这样:
tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
其中,QHeaderView::Stretch表示按比例分配模式。其他可选值包括:
- QHeaderView::Interactive:根据用户对列宽的拖动进行调整;
- QHeaderView::Fixed:固定列宽;
- QHeaderView::ResizeToContents:根据内容自动设置列宽(等同于调用resizeColumnsToContents());
类似地,还可以通过设置QTableView的VerticalScrollBarPolicy和HorizontalScrollBarPolicy属性来控制滚动条显示方式。例如,隐藏水平滚动条并始终显示垂直滚动条,可以这样:
tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
这样,当表格内容超出视口时,会自动显示垂直滚动条,并隐藏水平滚动条。