PyQt6 PlotWidget如何调整两行图表标题使其完全居中?
解决PyQt6 PlotWidget标题两行居中问题
直接给你两个可行的方案,选一个用就行:
方案一:强制设置标题的Qt对齐属性
在现有代码基础上加一行,从Qt层面强制标题居中,无视HTML样式的潜在冲突:
plot_item = plot_widget.getPlotItem() plot_item.setContentsMargins(15, 15, 10, 10) plot_item.setTitle(title) # 新增这行,强制标题整体居中 plot_item.title.setAlignment(Qt.AlignCenter)
注意需要先导入Qt模块:from PyQt6.QtCore import Qt
方案二:调整HTML结构,确保每行都继承居中样式
如果不想修改Qt属性,也可以重构HTML代码,让每行都被居中块包裹,避免换行后样式失效:
title = f"""<div style="text-align: center; font-size: 12pt; width: 100%;"> <div>{window.chosen_customer} - {window.chosen_product}</div> <div>{prop}</div> </div>"""
要是觉得行距太大,也可以用<p>标签并去掉默认边距:
title = f"""<div style="font-size: 12pt; width: 100%;"> <p style="text-align:center; margin:0;">{window.chosen_customer} - {window.chosen_product}</p> <p style="text-align:center; margin:0;">{prop}</p> </div>"""
问题根源
你原来的代码失效,大概率是因为pyqtgraph的PlotItem标题容器默认左对齐,你写的HTMLtext-align:center被Qt的布局对齐规则覆盖了,要么从Qt层面强制居中,要么让每行元素单独继承居中样式,就能解决第二行靠左的问题。
内容的提问来源于stack exchange,提问作者Tokar
相关产品推荐
相关产品推荐

