Изменить цвет «свечи» в QCandlestickSet при нажатии - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь изменить цвет объекта QCandlestickSet, но он не отображает никакого цвета. Я успешно изменил цвет и ширину «фитиля» в объекте QCandlestickSet, однако часть «тело свечи» не имеет цвета после того, как я щелкнул по свече на графике.

Ниже приведена ссылка программы python.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, QtChart
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtChart import *

class Window(QMainWindow):

    def __init__(self):
        super().__init__()

        self.data = ((20190111,15.28,15.54,15.22,15.26),(20190114,15.3,15.56,15.3,15.42),(20190115,15.7,15.98,15.4,15.4),(20190116,15.58,15.6,15.24,15.34))
        self.chart = QChart()
        self.series = QCandlestickSeries(clicked=self.onCandleClicked)

        color = QColor()
        color.setRgb(229,57, 53)
        self.series.setDecreasingColor(color)

        color.setRgb(76,175, 80)
        self.series.setIncreasingColor(color)

        self.series.setBodyOutlineVisible(False)

        self.date_labels = []
        self.resize(640, 480)

        for num, o, h, l, c in self.data:
            self.series.append(QCandlestickSet(o, h, l, c))
            self.date_labels.append(str(num))

        self.chart.addSeries(self.series)

        self.chart.createDefaultAxes()
        self.chart.legend().hide()
        self.chart.axisX(self.series).setCategories(self.date_labels)

        self.chartview = QChartView(self.chart)
        self.chartview.setChart(self.chart)

        central_widget = QtWidgets.QWidget()        
        lay = QtWidgets.QVBoxLayout(central_widget)
        lay.addWidget(self.chartview)
        self.setCentralWidget(central_widget)

        self.show()

    def onCandleClicked(self, value):
        candleSet = value
        color = QColor()
        pen = QPen()
        brush = QBrush()


        color.setRgb(0,140,140)
        pen.setColor(color)
        pen.setWidth(3)        
        candleSet.setPen(pen)

        brush.setColor(color) #I want to change the color of candle        
        candleSet.setBrush(brush)


app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())

Вывод программы

Вывод программы после нажатия на несколько свечей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...