0

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

4

1 回答 1

2

如果我正确理解您想要的是将容器小部件的水平大小调整为表格内容的大小(不一定是表格大小)。以下方法适用于我的 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())

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

于 2012-11-03T19:20:57.167 回答