html - Pyqtgraph TextItem 居中对齐文本
问题描述
我正在尝试使用 pyqtgraph 使文本居中对齐,而不是使用 html 左对齐。但是,似乎当我使用<div style="text-align: center"></div>
它时似乎没有效果。
import sys
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui, QtWidgets
app = QtWidgets.QApplication(sys.argv)
win = QtWidgets.QMainWindow()
gv = pg.GraphicsView()
win.setCentralWidget(gv)
win.show()
text = pg.TextItem(html='<div style="text-align: center">I am on the top<br>bottom</div>',
fill=QtGui.QColor(255, 255, 255))
text.setPos(100, 100)
gv.addItem(text)
sys.exit(app.exec_())
给
底部文本根本不是居中对齐的,当我更改<div style="text-align: center"></div>
为<div style="text-align: right"></div>
例如时,它仍然没有做任何事情。我究竟做错了什么?
解决方案
如果要设置文本对齐方式,可以使用内部 QGraphicsTextItem 的 document():
text = pg.TextItem(html='<div>I am on the top<br>bottom</div>',
fill=QtGui.QColor(255, 255, 255))
it = text.textItem
option = it.document().defaultTextOption()
option.setAlignment(QtCore.Qt.AlignCenter)
it.document().setDefaultTextOption(option)
it.setTextWidth(it.boundingRect().width())
text.setPos(100, 100)
gv.addItem(text)
推荐阅读
- python-2.7 - 在 Python 中停止 Lambda 函数
- ignite - 如何在 apache ignite 中设置最大连接池大小?
- python - 如何从两个熊猫数据帧中分割行,然后将它们与其他值合并
- ios - 如何实现将tableView滚动到顶部隐藏其tableheaderView中的搜索栏?
- asp.net - IBM Watson Assistant:为什么“试一试”能给我正确的结果,但我的客户端代码却没有?
- javascript - 将带有逗号的数字与javascript相乘
- c# - 将 EF Core 与 ASP.NET Core MVC 和 Sqlite 一起使用 - 正确的类结构
- python - reshape 的输入是一个有 40804 个值的张量,但请求的形状有 10201
- regex - 要排除 % 的 Powershell 模式
- ios - com.apple.main-threadEXC_BREAKPOINT,在 iOS 中获取用户 Facebook 个人资料时在 Fabric 上注册的崩溃