如何在pyqtgraph中对齐textwidget的中心

时间:2017-04-06 09:48:31

标签: python pyqt4 pyqtgraph scientific-software

我想使用textwidget在图像上显示文本,并确保文本在图像中居中。 (我实际上想制作一部电影,其中文字随每一帧而变化,以表明改变了什么)。

我尝试了以下(在jupyter笔记本中):

%pylab inline
%gui qt
import pyqtgraph as pg

# new cell
imv = pg.ImageView()
imv.show()

#new cell
# add a textwidget
tw_center = pg.TextItem('')
tw_center.setFont(pg.Qt.QtGui.QFont("arial", 20))
imv.addItem(tw_center)
# set it in the center
tw_center.setPos(50, 0)
# display text in red to make it visible
tw_center.setText('hi there', (255,0,0))

# create and show data
data = np.random.rand(100,100)
imv.setImage(data)

但是,这会导致非居中的文本标签,因为左角当前位于中心。如何获取图像中心的文本中心?我的数据大小可能会改变,文本小部件中的文本也会发生变化,所以我正在寻找一种比试错更聪明的方法。我查看了setAnchor方法,但它只指定了角落。

的问候, 德克

1 个答案:

答案 0 :(得分:1)

看起来你需要设置正确的锚。如果您查看documentation,则可以看到您可以使用其他锚点发起TextItem。要使它居中,你可能需要像

这样的东西
tw_center = pg.TextItem('',anchor=(0.5,0))

这会将项目的锚点设置为在x方向上居中。