我正在编写嵌入式设备屏幕的模拟(其中包含主 QWidget 顶部的自定义小部件),虽然屏幕的本机尺寸是 800x600,但我希望能够通过拖动窗口来放大和缩小它角落。如果不使用网格布局和拉伸器(不会向上/向下缩放字体),我如何完成这种缩放?我认为解决方案的一部分可能是创建一个 QTransform 并以某种方式将其注入整个应用程序的 QWidget 或其 QPaintDevice 或 QPaintEngine。我想这样做而不是将 QTransform 放在每个自定义小部件中,只是“主窗口”QWidget。
问问题
1565 次
2 回答
5
如果您使用QGraphicsView作为主要显示小部件, 这是可能的。QGraphicsScene现在支持小部件作为内容,因此您可以直接缩放它们。
我相信另一种方法是为每个小部件重新实现paint(),并在绘制子小部件之前手动设置变换/缩放。
于 2009-09-30T16:20:03.703 回答
0
这里有点猜测,因为我没有尝试过......但你可以尝试将顶级小部件放入 QGraphicsView 然后让 QGraphicsView 进行缩放。然后,您可以在 QGraphicsView 上启用 OpenGL 并在硬件中对其进行缩放,这样它既好又快。
于 2009-09-30T16:17:41.577 回答