我开始在我的应用程序中使用 Qt。我的应用程序是基于 MFC 的。我想在我当前的 MFC 视图中绘制一些 QGraphicsItems,可以吗?
您可能会说可以通过在 MFC 视图中使用 QWinWidget 托管 QGraphicsView 来完成,但是这不起作用。因为我的画布(MFC 视图)支持缩放和旋转,而 QGraphicsView 本身不支持。当我缩放 QGraphicsItem 时,QGraphicsView 显示滚动条而不是放大自身。
有什么建议吗?谢谢!
我开始在我的应用程序中使用 Qt。我的应用程序是基于 MFC 的。我想在我当前的 MFC 视图中绘制一些 QGraphicsItems,可以吗?
您可能会说可以通过在 MFC 视图中使用 QWinWidget 托管 QGraphicsView 来完成,但是这不起作用。因为我的画布(MFC 视图)支持缩放和旋转,而 QGraphicsView 本身不支持。当我缩放 QGraphicsItem 时,QGraphicsView 显示滚动条而不是放大自身。
有什么建议吗?谢谢!
从理论上讲,您可以使用在缓冲区QGraphicsScene::paint
中绘制场景QGraphicsItems
,然后将其绘制到 MFC 视图,但这没有任何意义......
到底有什么问题QGraphicsView
?你看过它的rotate()
, scale()
,translate()
或shear()
函数吗?
您可以通过将ScrollBarPolcies设置为 Qt::ScrollBarAlwaysOff 来关闭 QGraphicsView 滚动条的显示。(QGraphicsView 是 QAbstractScrollArea 的子类。)
我不确定我是否理解旋转 QGraphicsView 本身而不是内容的意思。没有滚动条,我看不出区别。QGraphicsItem 的许多功能(如您所指出的编辑)也取决于 QGraphicsScene 和 QGraphicsView 中的事件处理才能工作。我认为仅将 QGraphicsItem 插入 MFC 视图不会满足您的要求。