QCustomPlot中QCPItemEllipse填充颜色不生效,如何正确设置?
QCPItemEllipse 无法显示填充颜色的解决方法
你的问题出在填充颜色的设置对象错误:你把用于椭圆内部填充的QBrush设置到了QPen上,但QCPItemEllipse的内部填充是通过自身的setBrush()方法单独控制的,QPen.setBrush()只是用来定义画笔线条的填充样式,和椭圆的内部填充无关。
修正后的代码:
from PySide2.QtGui import QBrush, QPen, Qt from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout import sys from qcustomplot_pyside2 import QCPItemEllipse, QCustomPlot app = QApplication(sys.argv) window = QWidget() window.setFixedSize(500, 500) window.setLayout(QVBoxLayout()) qcustomplot = QCustomPlot() window.layout().addWidget(qcustomplot) ellipse = QCPItemEllipse(qcustomplot) ellipse.bottomRight.setCoords(-2, -2) ellipse.topLeft.setCoords(2, 2) # 配置边框画笔 pen = QPen() pen.setColor(Qt.magenta) # 设置边框颜色 ellipse.setPen(pen) # 配置内部填充画刷 brush = QBrush() brush.setColor(Qt.cyan) # 设置填充颜色 ellipse.setBrush(brush) # 关键:给椭圆本身设置画刷 qcustomplot.replot() window.show() app.exec_()
关键说明:
QCPItemEllipse的边框样式由setPen()控制,对应线条的颜色、宽度、样式- 椭圆的内部填充由
setBrush()控制,对应填充颜色、填充图案 - 你之前的代码错误地将填充画刷赋值给了画笔,导致椭圆内部没有被正确填充
内容的提问来源于stack exchange,提问作者snakeslayer09
相关产品推荐
相关产品推荐

