在PyQt中缩放视图?

时间:2015-06-02 16:06:47

标签: qt pyqt pyside

我有一个简单易用的树应用程序,在QTreeView内部显示QMainWindow.我希望让用户能够更改内容的放大级别(最有可能使用旋转框) ,但没有实际更改文本的基础字体大小。

有没有办法在不将我的整个应用程序更改为QGraphicsScene的情况下执行此操作?该应用程序只是显示一个老式的树,文本,没有图形或任何花哨的东西,除了想要改变视图的放大倍数;因此,我认为切换到图形场景将是过度的。

或者,我错了,切换到图形场景是唯一简单的方法吗?

注意trimmed down version of the app是代码审核。它包含一个SSCCE,但在这里发布有点长。

在讨论how to put widgets on a scene的网站上,trolltech写道(强调补充):

  

我自己和其他几个Trolls花​​了一些时间研究这个   主题[如何在QGraphicsScene中嵌入小部件]。这不是微不足道的;   将小部件嵌入场景的大多数解决方案最终都有几个   严重的缺点。这也是为什么Qt没有任何现成的原因   解决这个问题。

     

窗口小部件无法缩放或旋转,但图形项目可以。

这表明我无法以简单的方式执行我想要在QWidget上执行的操作。也就是说,也许我需要将它添加到场景中,这是我试图避免的。如果这就是答案,那么我会接受它并在我遇到困难时开始一个新问题。

注意我刚刚发现this question,这几乎是重复的,并且没有(接受的)答案。

相关内容

1 个答案:

答案 0 :(得分:0)

正如trolltech在原始问题中引用的文档所暗示的,没有内置方法来放大视图。

如果目标是避免使用QGraphicsViews,分隔屏幕上字体大小的最简单方法,而不是保存或打印字体的大小,则基本上有两种字体。一个要显示在屏幕上,您可以调用'缩放',而另一个要保存/打印并调用“#font”字体大小'。

我从qtcentre得到了这个想法(在我添加到原始帖子的帖子中):

http://www.qtcentre.org/threads/62745-Zoom-a-view