首页 文章

在Qt中缩放图形

提问于
浏览
1

我正在使用Qt / C编写一个调度类型的应用程序,并希望在窗口的一个部分中显示每周调度,并在窗口大小增加时使用此渲染比例 . 渲染将由带有文本的矩形组成,并且随着显示区域的增加,矩形应该很好地缩放,而文本应该保持相同的大小 .

我已经尝试过QGraphicsScene和QGraphicsView,我可以制作矩形和文本缩放;然而,矩形缩放似乎很难看(拉伸轮廓),我不希望文本按比例缩放 .

我怀疑我可能想要将场景调整到显示区域并重新绘制矩形和文本;但是,我不知道如何做到这一点 - QGraphicsScene似乎没有响应resizeEvent . 这甚至是正确的方法吗?

1 回答

  • 0

    我不确定丑陋的矩形缩放是什么(截图可能帮助我更好地理解你的意思),但如果你不希望文本部分扩展,你可以通过调用setFlag(ItemIgnoresTransformations,true)来实现这一点 . )在你的QTextGraphicItem对象上 .

    至于响应窗口大小调整自动重新缩放矩形,您可以查看QGraphicsView::fitInView()方法的文档:

    缩放视图矩阵并滚动滚动条以确保场景矩形rect适合视口[...]通常从resizeEvent()的重新实现中调用fitInView(),以确保整个场景,或者当视图调整大小时,场景的某些部分会自动缩放以适合视口的新大小 . 但请注意,如果新转换切换滚动条的自动状态,则从resizeEvent()内部调用fitInView()会导致意外的调整大小递归 . 您可以将滚动条策略切换为始终打开或始终关闭以防止这种情况(请参阅horizontalScrollBarPolicy()和verticalScrollBarPolicy()) .

相关问题