首页 > 解决方案 > 在pyqtgraph中动态旋转TextItem

问题描述

我想动态旋转 TextItem 但不能让它工作。使用 setPos 和 setAnchor 更改位置或锚点会更新项目,但想要使用 setAngle 更改 angel 不会更新文本。最奇怪的是,一旦我拖动画布,它就会更新。

from pyqtgraph.Qt import QtCore, QtGui
import pyqtgraph as pg

app = QtGui.QApplication([])

w = pg.GraphicsView()
w.show()
w.resize(800,800)

view = pg.ViewBox()
w.setCentralItem(view)
view.setAspectLocked(True)
view.setRange(QtCore.QRectF(0, 0, 200, 200))

anchor = pg.TextItem()
anchor.setText("hey")
anchor.setColor(QtGui.QColor(255, 255, 255))

view.addItem(anchor)


def rotate():
    x, y = anchor.pos()
    anchor.setPos(x + 1, y + 1)
    anchor.setAngle(anchor.angle + 10)


timer = QtCore.QTimer()
timer.timeout.connect(rotate)
timer.start(1000)


if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

我想知道要调用什么信号或函数以使项目立即更新。

标签: pythonpyqt5pyqtgraph

解决方案


它最终成为一个错误。我通过删除旧的TextItem并使用更新角度创建一个新的来解决它。


推荐阅读