我想写一个2D QT应用程序。我们的目标是能够绘制矩形,调整它们的大小,并使用鼠标拖动它们。QT提供了这样做的功能。QGraphicsXxx类本机使用像素操作,但我希望能够在长度维度上指定项的尺寸和位置,如米。
我正在寻找一种构建抽象层的好策略,该抽象层允许对象尺寸以米为单位表示,而不是像素。例如,我在考虑用缩放信息来扩展QRectangle,以及在真实世界和屏幕之间进行转换的方法,即像素表示。
这当然是可能的,但也像是通往坐标映射地狱的道路。我喜欢为一个问题做很多工作,如果它已经在全球/优雅地解决了,我也不会感到惊讶,只是我没有从QT文档中找到或理解它。
发布于 2017-10-06 09:12:10
使用QGraphicsScene来布局你的对象,所有的大小和位置都是浮动的,并且与单位无关。使用QGraphicsView显示场景时,像素会起作用。缩放应由视图处理,因此不需要在场景中执行任何坐标变换。您只需更改视图的转换,以显示您想要的任何内容。
您可以在GraphicsView框架文档中了解更多信息:http://doc.qt.io/qt-4.8/graphicsview.html
https://stackoverflow.com/questions/46601859
复制相似问题