可扩展的Qt应用程序绘制

时间:2009-09-30 15:56:57

标签: qt transform scaling

我正在编写嵌入式设备屏幕的模拟(其中包含主QWidget上的自定义小部件),虽然屏幕的原始大小为800x600,但我希望能够通过拖动窗户的角落。如果没有使用网格布局和担架(不会向上/向下缩放字体),我该如何完成这种缩放?我认为解决方案的一部分可能是创建一个QTransform并以某种方式将其注入整个应用程序的QWidget,或其QPaintDevice或QPaintEngine。我不想在每个自定义小部件中放置QTransform,只需要“主窗口”QWidget。

2 个答案:

答案 0 :(得分:5)

如果您使用QGraphicsView作为主显示窗口小部件, 是可能的。 QGraphicsScene现在支持小部件作为内容,因此您可以按字面意思缩放它们。

我相信替代方法是为每个小部件重新实现paint(),并在绘制子小部件之前手动设置转换/缩放。

答案 1 :(得分:0)

这里有点猜测,因为我没有尝试过......但你可以尝试将顶级小部件放入QGraphicsView,然后让QGraphicsView进行缩放。 然后,您可以在QGraphicsView上启用OpenGL,并使其在硬件中进行缩放,这样它就会很好而且快速。