Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QTableView放大/缩小_Qt_Pyqt_Qtableview - Fatal编程技术网

QTableView放大/缩小

QTableView放大/缩小,qt,pyqt,qtableview,Qt,Pyqt,Qtableview,我正在尝试创建一个可以像在Excel中一样放大和缩小的QTableView。 这里提出了一个类似的问题: 但是,我在PyQt中对QTableView进行子类化,而不是C,因此重新实现整个PaintEvent方法有点复杂。其源代码有点复杂: 我想看看是否有其他可行的选择来拥有一个可缩放的桌面视图。我的第一次尝试是设置字体大小,然后意识到每一列和每一行的宽度也必须缩放,这可能会变得很慢。然后意识到改变字体会改变打印。这似乎不是一个优雅的解决方案。在绘制之前更改画师的比例似乎是更优雅的解决方案,但必须

我正在尝试创建一个可以像在Excel中一样放大和缩小的QTableView。
这里提出了一个类似的问题:

但是,我在PyQt中对QTableView进行子类化,而不是C,因此重新实现整个PaintEvent方法有点复杂。其源代码有点复杂:

我想看看是否有其他可行的选择来拥有一个可缩放的桌面视图。我的第一次尝试是设置字体大小,然后意识到每一列和每一行的宽度也必须缩放,这可能会变得很慢。然后意识到改变字体会改变打印。这似乎不是一个优雅的解决方案。在绘制之前更改画师的比例似乎是更优雅的解决方案,但必须重新实现并将相当多的代码翻译成python才能做到这一点。我想知道是否还有其他钩子可以完成这项工作


谢谢

如果您可以使用
QTableWidget
,那么您可以创建一个
qgraphicscene
和。然后,您可以轻松地控制内部小部件的规模


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

没有内置的方法来缩放视图

区分屏幕上字体大小与保存或打印字体大小的最简单方法是基本上有两种字体。一种字体显示在屏幕上,您可以称之为“缩放”,另一种字体保存/打印并称之为“字体大小”

注意:这个答案是从同一个问题中剪下来粘贴的:

这听起来是一个很好的主意。我一直很难实现它,因为滚动条似乎是一个问题,无法通过图形视图保持水平和垂直标题的可见滚动。最后你在这方面取得了成功吗?你能分享你确定的技术吗?谢谢!最后,任务在pr中被向下移动iority显然不再适用于它。在某个时候,我会重新讨论这个问题,但不知道什么时候。使用图形场景存在一些复杂性和奇怪的行为,因此我不确定这是否会比在末尾重新实现绘画方法更容易。我几天前问过这个问题,我的搜索技能很差我想我最终可能只是改变字体大小,然后根据内容调整大小,这很糟糕,但是哦,好吧。。。