我正在尝试使用pyqtgraph绘制乘法项,但是不幸的是,当我尝试将TextItem添加到Viewbox时,它只显示了几秒钟,然后消失了。
任何人都有一个主意,如何永久修复TextItem?

我意识到,如果我将物品移到盒子中,它不会消失,但是对我来说,这不是一个好的解决方案:(。

任何有用的帮助表示赞赏!
谢谢!

这是我的代码:

import PyQt5
from PyQt5 import *
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication
import pyqtgraph as pg


app = QApplication([])


win = pg.GraphicsWindow()
win.setWindowTitle('Senzor data:')
win.setGeometry(2, 50, 1916, 1005)
win_border = pg.mkPen({'color': "040", 'width': 3})  #m, y, k, w
win.ci.setBorder(win_border)
Layout_border = pg.mkPen({'color': "0DE", 'width': 1})
Layout = win.addLayout(border=Layout_border)
#Layout.setSpacing(0)

Layout.addLabel("<b>pulse number", row=0, col=1, rowspan=1, colspan=4)
Layout.nextRow()
Layout.addLabel('pulse', angle=-90, row=1, col=0, rowspan=4, colspan=1)

View5 = Layout.addViewBox(row=1, col=1, rowspan=4, colspan=4)
pp = pg.TextItem("place of the pulse counter", color=(200, 200, 200), border='c', fill='b', anchor=(0.5, 0.5))
pp.setFont(QFont("", 50, QFont.Bold))
View5.addItem(pp)


app.exec_()

最佳答案

通过分析viewRange()方法从ViewBox返回的内容,对其进行修改,直到生成[0,0,0,0],从而没有空间绘制TextItem。

一种解决方法是借助方法setRange()建立固定范围:

View5 = Layout.addViewBox(row=1, col=1, rowspan=4, colspan=4)
View5.setRange(QRectF(-50, -50, 100, 100))


另一种可能的解决方案是使用autoRange()方法自动缩放并将TextItem放置在中心位置,即0.5、0.5

View5 = Layout.addViewBox(row=1, col=1, rowspan=4, colspan=4)
View5.autoRange()
pp = pg.TextItem("place of the pulse counter", color=(200, 200, 200), border='c', fill='b', anchor=(0.5, 0.5))
pp.setFont(QFont("", 50, QFont.Bold))
pp.setPos(.5, .5)
View5.addItem(pp)

10-06 06:25