You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:45:16