添加到Viewbox的TextItem会在几秒钟后消失

时间:2017-09-02 18:37:27

标签: python python-3.x pyqt pyqt5 pyqtgraph

我试图使用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_()

1 个答案:

答案 0 :(得分:2)

通过分析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)