我的数据有自定义QAbstractTableModel,模型目前包含固定数量的列(12)。我还有一个自定义QTableView来显示这个模型。当我将这个小部件添加到我的对话框时,它总是鼓掌最后几列,如
我使用标准布局(QFormLayout,QVBoxLayout)将小部件添加到对话框中,我没有为我的小部件指定minimumSize(),希望布局引擎能够为我计算最佳。
那么,如何设置模型类/ QTableview类以便它会自动扩展以显示所有列?或者我如何使tableView的minimumSize取决于表列的宽度?
(我不想对窗口的像素值进行硬编码,因为每当列发生变化时,我都必须再次手动调整值)
答案 0 :(得分:0)
如您所见,滚动条位于表格内部,而不是在其外部。当内容不适合视口时,QTableView
会扩展QAbstractScrollArea
,从而创建它们。视口的最小尺寸由方法QSize QAbstractScrollArea::maximumViewportSize () const
控制(顺便说一下,这不是虚拟的)。
我认为,最好的方法是在小部件的析构函数中将QWidget::saveGeometry()
(是QMainMindow
?)和QTableView::horizontalHeader()->saveState()
保存在QSettings
中,并在构造函数中重新定位它们