我有一个通过以下方式创建的图形:
# (self is a child class of a QWidget that this code snippet belongs to)
self.chart = QChart()
self.axisx_type = "linear"
self.axisx = QValueAxis()
self.axisx.setTickCount(Config.axisx_ticks)
self.chart.setAxisX(self.axisx)
self.axisy_type = "log"
self.axisy = QLogValueAxis()
self.axisy.setBase(10.0)
self.axisy.setLabelFormat(Config.axisy_log_label_format)
self.chart.setAxisY(self.axisy)
但是,在运行时,缩放时y轴不变。它似乎与以下事实有关:它是QLogValueAxis。右键单击以缩小时,x轴将缩小,而y轴(对数缩放轴)将缩小。奇怪的是,当使用QChartView橡皮筋功能进行缩放时,它确实会放大,但是y轴上的标签不会改变,即使它显示的范围清楚。
我还有其他代码可以让我在运行时换出y轴。如果我换成线性(QValueAxis)轴,则缩放在y轴上就可以了。
我已经重写了右键单击事件并调用Chart :: zoomOut函数,但这不适用于对数刻度。
我还尝试过手动进行缩放计算,并直接设置x和y轴的范围,但这仅适用于x轴。
这可能是Qt中的错误吗?我希望不是,因为这将是我上周遇到的第二个问题。