【问题标题】:Zooming a view in PyQt?在 PyQt 中缩放视图?
【发布时间】:2015-08-16 13:02:15
【问题描述】:

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

有没有办法在不将我的整个应用程序更改为QGraphicsScene 的情况下做到这一点?该应用程序仅显示带有文本的老式树,没有图形或任何花哨的东西,只是想更改视图的放大倍率;因此,我认为切换到图形场景将是矫枉过正。

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

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

在讨论how to put widgets on a scene 的网站上,奇趣科技写道(强调):

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

小部件不能缩放或旋转,但图形项可以。

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

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

相关内容

【问题讨论】:

    标签: qt pyqt pyside


    【解决方案1】:

    正如 trolltech 在原始问题中引用的文档所建议的那样,没有内置方法可以放大视图。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      相关资源
      最近更新 更多