QValueAxis 显示乱码(中文)?
QValueAxis show messy code (chinese language)?
在我的图表中,x轴需要显示中文,y轴需要显示英文,但是x轴显示乱码。谁能帮帮我?
self.chart.createDefaultAxes()
axis_x, axis_y = self.chart.axes()
axis_x.setLabelFormat('%.2f分')
axis_y.setLabelFormat('%dmA')
看起来像这样:
似乎QString在QtCharts和str中使用的编码器不兼容(甚至找出了问题的原因),但我设法实现了一个转换的解决方案:
import random
from PyQt5 import QtCore, QtWidgets, QtChart
def convert(word):
return "".join(chr(e) for e in word.encode())
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
series = QtChart.QLineSeries(name="random serie")
for i in range(20):
series << QtCore.QPointF(0.1 * i, random.uniform(-10, 10))
self.chart = QtChart.QChart()
self.chart.setTitle("Title")
self.chart.addSeries(series)
self.chart.createDefaultAxes()
axis_x, axis_y = self.chart.axes()
axis_x.setLabelFormat(convert("%.2f分"))
axis_y.setLabelFormat("%dmA")
view = QtChart.QChartView(self.chart)
self.setCentralWidget(view)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.resize(640, 240)
w.show()
sys.exit(app.exec_())
在我的图表中,x轴需要显示中文,y轴需要显示英文,但是x轴显示乱码。谁能帮帮我?
self.chart.createDefaultAxes()
axis_x, axis_y = self.chart.axes()
axis_x.setLabelFormat('%.2f分')
axis_y.setLabelFormat('%dmA')
看起来像这样:
似乎QString在QtCharts和str中使用的编码器不兼容(甚至找出了问题的原因),但我设法实现了一个转换的解决方案:
import random
from PyQt5 import QtCore, QtWidgets, QtChart
def convert(word):
return "".join(chr(e) for e in word.encode())
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
series = QtChart.QLineSeries(name="random serie")
for i in range(20):
series << QtCore.QPointF(0.1 * i, random.uniform(-10, 10))
self.chart = QtChart.QChart()
self.chart.setTitle("Title")
self.chart.addSeries(series)
self.chart.createDefaultAxes()
axis_x, axis_y = self.chart.axes()
axis_x.setLabelFormat(convert("%.2f分"))
axis_y.setLabelFormat("%dmA")
view = QtChart.QChartView(self.chart)
self.setCentralWidget(view)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.resize(640, 240)
w.show()
sys.exit(app.exec_())