我想写一个2D QT应用程序。目标是能够绘制矩形并调整它们的大小并用鼠标拖动它们。 QT提供了这样做的功能。 QGraphicsXxx类本身使用像素操作,但我希望能够指定项目'尺寸和位置的长度尺寸,如米。
我正在寻找一种构建抽象层的好策略,该抽象层允许以米为单位的对象尺寸表示,与像素无关。我正在考虑使用缩放信息扩展QRectangle,以及在真实世界和屏幕(即像素)表示之间进行转换的方法。
这应该是可能的,但也有点像协调地图的道路。对于一个问题的大量工作,如果它已经在全球/优雅地得到解决并且我没有从QT文档中找到或理解,我不会感到惊讶。
答案 0 :(得分:2)
使用QGraphicsScene布置对象,所有大小和位置都是浮动和单位独立的。使用QGraphicsView显示场景时,Pixel会起作用。缩放应该由视图处理,因此不需要在场景中进行任何坐标转换。您只需更改视图的转换以显示您想要的任何内容。
您可以在GraphicsView Framework文档中阅读更多相关信息:http://doc.qt.io/qt-4.8/graphicsview.html