如何在 QQuickPaintedItem 中选择一个区域

Posted

技术标签:

【中文标题】如何在 QQuickPaintedItem 中选择一个区域【英文标题】:How select an area in QQuickPaintedItem 【发布时间】:2014-11-19 11:48:00 【问题描述】:

我想为我的 qml 图像编辑器构建一个选择工具。

为此,我正在QGraphicsScene 中寻找类似setSelectedArea 的功能。 有人对此有解决方案吗?

问候

编辑:也许我可以为我的选择工具编写一个插件,扩展 QQuickItem 并使用 openGL 绘制一个 QPolygon。

【问题讨论】:

【参考方案1】:

您需要自己实现选择。

您可以创建 MouseArea 来跟踪鼠标活动并相应地更新选定的矩形。我的意思是这样的:

DocumentViewer  // Your QQuickPaintedItem
    id: viewer
    MouseArea 
        anchors.fill: parent
        acceptedButtons: Qt.LeftButton
        property real originX: 0
        property real originY: 0
        onPressed: 
            originX = mouse.x
            originY = mouse.y
        
        onPositionChanged: 
            var width = mouse.x - originX
            var height = mouse.y - originY
            viewer.selectionRect = Qt.rect(originX, originY, width, height)
        
    

然后您就可以在查看器的 selectionRect 属性设置器中更新和绘制选择矩形。

【讨论】:

以上是关于如何在 QQuickPaintedItem 中选择一个区域的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QQuickItem 中绘制文本

不能在 QML 中使用 C++ QQuickPaintedItem Singleton

自定义 QQuickPaintedItem 中的渲染质量差

在 QML 上异步更新多个 QQuickPaintedItem

在 QQuickPaintedItem 上用鼠标绘制

要在屏幕上绘制一些小图块,我应该使用 QQuickItem 还是 QQuickPaintedItem?