首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QPainterPath -移动/删除元素

QPainterPath -移动/删除元素
EN

Stack Overflow用户
提问于 2012-09-17 00:51:24
回答 1查看 2.7K关注 0票数 3

有没有办法编辑QPainterPath中单个'lineTo‘元素的位置(或者移除特定的元素并用修改后的版本替换它们?)我尝试过使用*.setElementPositionAt(i,x,y),但没有用(路径不会被重新绘制)。

我基本上是想让所有用户用鼠标动态编辑折线的顶点(通过qpainterpath和lineTo方法创建)。

显然,如果有更好的方法在QGraphicscene中创建折线,那么也会欢迎一些建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-18 15:12:16

我不确定您是如何使用setElementPositionAt的,但它是有效的。QGraphicsScene的诀窍在于addPath返回一个QGraphicsPathItem,您需要使用修改后的QPainterPath使用其setPath方法更新该项。

一个简单的例子:

代码语言:javascript
复制
import sys
from PySide import QtGui

class Widget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        self.view = QtGui.QGraphicsView()
        self.scene = QtGui.QGraphicsScene()
        self.scene.setSceneRect(0,0,100,100)
        self.view.setScene(self.scene)

        self.button = QtGui.QPushButton('Move path')
        self.button.clicked.connect(self.movePath)

        layout = QtGui.QHBoxLayout()
        layout.addWidget(self.view)
        layout.addWidget(self.button)

        self.setLayout(layout)

        self.createPath()

    def createPath(self):
        path = QtGui.QPainterPath()

        path.moveTo(25, 25)
        path.lineTo(25, 75)
        path.lineTo(75, 75)
        path.lineTo(75, 25)
        path.lineTo(25, 25)

        self.pathItem = self.scene.addPath(path)

    def movePath(self):
        # get the path
        path = self.pathItem.path()

        # change some elements
        # element 0: moveTo(25, 25)
        # element 1: lineTo(25, 75)
        # element 2: lineTo(75, 75)
        # ...
        path.setElementPositionAt(2, 90, 85)
        path.setElementPositionAt(3, 90, 15)

        # set the new path
        self.pathItem.setPath(path)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)

    main = Widget()
    main.show()

    sys.exit(app.exec_())
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12448788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档