如何在pyqtgraph中对齐文本小部件的中心

问题描述 投票:0回答:1
我想使用文本小部件在图像上显示文本,并确保文本在图像中居中。 (我实际上想制作一部每帧文本都会变化的电影,以指示发生了什么变化)。

我尝试了以下操作(在 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 方法,但它只指定了角点。

python pyqt4 pyqtgraph
1个回答
3
投票
看起来你需要正确设置锚点。如果您查看

文档,您可以看到您可以使用不同的锚点启动TextItem

。为了让它居中,你可能需要类似的东西

tw_center = pg.TextItem('',anchor=(0.5,0))

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

© www.soinside.com 2019 - 2024. All rights reserved.