2015-06-02 76 views
1

我有一個簡單的樹型應用程序,它在QMainWindow.的內部顯示QTreeView我想讓用戶能夠更改內容的放大級別(最有可能使用spinbox),但實際上並未更改底層字體大小的文字。在PyQt中縮放視圖?

有沒有辦法做到這一點,而不必將我的整個應用程序更改爲QGraphicsScene?該應用程序只是展示了一個老式的樹木,上面有文字,沒有圖形或任何想要改變視圖放大倍數的任何幻想;因此,我認爲切換到圖形場景會過度。

或者,我錯了,切換到圖形場景是唯一的簡單方法嗎?

注意a trimmed down version of the app在Code Review。它包含一個SSCCE,但在這裏發佈有點長。

在現場討論how to put widgets on a scene,奇趣寫道(強調):

我自己和其他幾個Trolls've花了一些時間研究這個話題 [如何嵌入在QGraphicsScene一個小部件。這不是微不足道的;大多數將窗口部件嵌入到場景中的解決方案最終都會遇到幾個嚴重的缺陷: 。這也是爲什麼Qt沒有任何現成的 解決方案。

小部件不能縮放或旋轉,但圖形項可以。

這表明我不能以簡單的方式執行我想在我的QWidget上執行的操作。也就是說,也許我需要將它添加到場景中,這正是我想要避免的。如果這是答案,那麼我會接受它,並開始一個新的問題,如果我卡住這樣做。

注意我剛剛發現this question,這幾乎是重複的,並沒有(接受的)答案。

相關內容

回答

0

如建議通過在原來的問題,從奇趣引述文檔,有放大視圖上的沒有內置的方法。

如果目標是避免使用QGraphicsViews,,分離屏幕上字體大小與保存或打印字體大小的最簡單方法是基本上有兩種字體。一個要顯示在屏幕上,您可以調用「縮放」,而另一個要保存/打印並調用「字體大小」。

我從qtcentre這個想法(在我添加到原來的職位太后):

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