0

我的数据有一个自定义的 QAbstractTableModel,该模型当前包含固定数量的列 (12)。我还有一个自定义 QTableView 来显示这个模型。当我将此小部件添加到我的对话框时,它总是像这样拍手最后几列

我使用标准布局(QFormLayout、QVBoxLayout)将小部件添加到对话框中,并且我没有为我的小部件指定 minimumSize(),希望布局引擎能够为我计算出最好的布局。

那么,如何设置模型类/ QTableview 类,以便它自动展开以显示所有列?或者如何使我的 tableView 的 minimumSize 取决于表格列的宽度?

(我不想硬编码窗口的像素值,因为每当列更改时,我将不得不再次手动调整值)

4

1 回答 1

0

如您所见,滚动条在表格内部,而不是在表格外部。QTableViewextends QAbstractScrollArea,当内容不适合视口时创建它们。视口的最小尺寸由方法控制QSize QAbstractScrollArea::maximumViewportSize () const(顺便说一句,它不是虚拟的)。

我认为,最好的方法是保存QWidget::saveGeometry()(是QMainMindow吗?)并QTableView::horizontalHeader()->saveState()QSettings你的小部件的析构函数中,并在构造函数中重新设置它们。

于 2013-03-30T04:59:33.380 回答