如何调整包含QTableView的小部件的大小?

时间:2012-11-02 09:03:52

标签: pyqt4 qtableview

我在Widget内部的布局中有一个QTableView。 在调用tableView.resizeColumnsToContents()之后如何设置Widget大小以便具​​有相同的表大小(并且不需要滚动条) 感谢

1 个答案:

答案 0 :(得分:1)

如果我理解你想要的是将容器小部件的水平大小调整为表内容的大小(不一定是表大小)。以下方法适用于我,包含20行和3列的小表:

  • 询问表模型的总列数(应该通过columnCount方法的实现返回)
  • 使用columnWidth方法询问每个列的宽度,并计算列的总宽度
  • 最后调整容器小部件的大小,同时考虑到列的总宽度,表格垂直标题的宽度和自动滚动边距

所以代码看起来像:

my_table_view.resizeColumnsToContents()
w = 0
for c in range(my_table_model.columnCount()):
    w = w + my_table_view.columnWidth(c)
container_widget.resize(w + my_table_view.verticalHeader().width() + my_table_view.autoScrollMargin()*1.5, container_widget.size().height())

正如我所说,我假设您想要横向调整小部件的大小。