0

有没有办法改变Qchart中x轴的字体大小属性?我所要做的就是当屏幕尺寸减小时,x 轴的数据大小会动态减小。为此,我使用 PySide2 和 Qchart。我还尝试在字符串中添加 h1 和 h2,但它没有动态变化。我有条形图的代码:

import sys
import PySide2.QtCharts
from PySide2 import QtCore
from PySide2.QtWidgets import *
from PySide2.QtGui import QBrush

set_pressure = 1000
actual_pressure = 0
actual_temperature = 50


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # set Barset
        set0 = PySide2.QtCharts.QtCharts.QBarSet('Set Pressure')
        set0.append([set_pressure])

        set1 = PySide2.QtCharts.QtCharts.QBarSet('Act Pressure')
        set1.append([actual_pressure])

        set2 = PySide2.QtCharts.QtCharts.QBarSet('Set Temperature')
        set2.append([actual_temperature])

        # set series
        series = PySide2.QtCharts.QtCharts.QBarSeries()
        series.setBarWidth(0.1)
        series.append(set0)

        series1 = PySide2.QtCharts.QtCharts.QBarSeries()
        series1.setBarWidth(0.1)
        series1.append(set1)

        series2 = PySide2.QtCharts.QtCharts.QBarSeries()
        series2.setBarWidth(0.1)
        series2.append(set2)

        # create chart
        chart = PySide2.QtCharts.QtCharts.QChart()
        chart.addSeries(series)
        chart.addSeries(series1)
        chart.addSeries(series2)

        setPressureMsg = '<center><p style="color:Red;">Set<br>Pressure<br>' + str(set_pressure) + '<center></p>'
        actualPressureMsg = '<center><p style="color:green;">Actual<br>Pressure<br>' + str(actual_pressure) + '<center></p> '
        actualTemperatureMsg = '<center><p style="color:blue;">Actual<br>Temp<br>' + str(actual_temperature) + '<center></p> '
        xAxisData = (setPressureMsg, actualPressureMsg, actualTemperatureMsg)
        axisX = PySide2.QtCharts.QtCharts.QBarCategoryAxis()
        axisX.append(xAxisData)

        chart.addAxis(axisX, QtCore.Qt.AlignBottom)

        axisY = PySide2.QtCharts.QtCharts.QValueAxis()
        chart.addAxis(axisY, QtCore.Qt.AlignLeft)
        series.attachAxis(axisY)
        series1.attachAxis(axisY)

        axisY1 = PySide2.QtCharts.QtCharts.QValueAxis()
        chart.addAxis(axisY1, QtCore.Qt.AlignRight)
        series2.attachAxis(axisY1)

        chartView = PySide2.QtCharts.QtCharts.QChartView(chart)
        self.setCentralWidget(chartView)
        self.showMaximized()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
4

0 回答 0