QT坐标变换策略

QT坐标变换策略,qt,coordinates,Qt,Coordinates,我想写一个2D QT应用程序。目标是能够绘制矩形,调整它们的大小,并用鼠标拖动它们。QT提供了这样做的功能。QGraphicsXxx类本机使用像素操作,但我希望能够在长度维度(如米)中指定项目的尺寸和位置 我正在寻找一个好的策略来构建一个抽象层,它允许对象维度以米为单位表示,而不依赖于像素。例如,我正在考虑使用缩放信息扩展QRectangle,以及在现实世界和屏幕之间转换的方法,即像素表示法 这当然是可能的,但闻起来也像是一条通往地狱的道路。就像一个问题的大量工作一样,如果这个问题已经得到了更全

我想写一个2D QT应用程序。目标是能够绘制矩形,调整它们的大小,并用鼠标拖动它们。QT提供了这样做的功能。QGraphicsXxx类本机使用像素操作,但我希望能够在长度维度(如米)中指定项目的尺寸和位置

我正在寻找一个好的策略来构建一个抽象层,它允许对象维度以米为单位表示,而不依赖于像素。例如,我正在考虑使用缩放信息扩展QRectangle,以及在现实世界和屏幕之间转换的方法,即像素表示法


这当然是可能的,但闻起来也像是一条通往地狱的道路。就像一个问题的大量工作一样,如果这个问题已经得到了更全面/优雅的解决,我也不会感到惊讶,我只是没有从QT文档中找到或理解它。

使用Qgraphicscene来布局对象,所有大小和位置都是浮动的,且与单元无关。使用QGraphicsView显示场景时,像素发挥作用。缩放应由视图处理,因此无需在场景中进行任何坐标变换。您只需改变视图的转换以显示您想要的内容


您可以在GraphicsView框架文档中了解更多信息:

使用QGraphicscene来布局对象,所有大小和位置都是浮动的,且与单元无关。使用QGraphicsView显示场景时,像素发挥作用。缩放应由视图处理,因此无需在场景中进行任何坐标变换。您只需改变视图的转换以显示您想要的内容


您可以在GraphicsView框架文档中了解更多信息:

使用GraphicsView框架对您有效吗?使用GraphicsView框架对您有效吗?