QTableView放大/缩小

Tex*_*tor 6 qt pyqt qtableview

我正在尝试创建一个可以像Excel一样放大和缩小的QTableView.
这里也提出了类似的问题:QWidget上的缩放功能

但是,我在PyQt中继承QTableView而不是C,因此重新实现整个PaintEvent方法有点进化.源代码有点复杂:https://qt.gitorious.org/qt/tiittane-qt/source/bdd4a9149789f60974603e1f7621d51378f0a108:src/gui/staticmviews/qtableview.cpp#L1282

我正在寻找是否有任何其他可行的选项来拥有可缩放的TableView.我的第一次尝试是通过设置字体大小然后实现每个列和行宽度也必须缩放,这可能会变慢.然后意识到改变字体会改变打印.它似乎不是一个优雅的解决方案.在绘画之前改变画家的规模似乎是更优雅的解决方案,但是必须重新实现并将相当多的代码翻译成python才能这样做.我想知道是否有任何其他钩子来完成这件事.

谢谢

Oli*_*ver 2

如果您可以使用QTableWidget,那么您可以创建一个QGraphicsScene并将其添加到该. 然后您可以轻松控制内部小部件的比例。

如果您希望垂直和水平标题始终可见,我认为您必须关闭表格的滚动条(这最终会缩放,可能不是您想要的),并让滚动条成为包含图形场景的面板的一部分(可能是面板)将是一个QAbstractScrollArea布局中有 4 个单元格的单元格:一个单元格用于场景,一个单元格用于水平滚动条,一个用于垂直滚动条,一个用于角可能为空),并将它们连接到表格的滚动行为。