gpt4 book ai didi

python - QChart 添加轴未显示,悬停时信息无法正常工作?

转载 作者:行者123 更新时间:2023-12-01 07:08:01 24 4
gpt4 key购买 nike

我使用pyqt5绘制一个简单的图表,需要添加自定义轴,但是当我添加轴时,图表不显示它,当悬停信号发出时,我需要显示相应的点,但它也没有显示,需要点击才能显示。

class Demo(QChartView):
def __init__(self):
super().__init__()
self.chart = QChart()
self.setChart(self.chart)
self.setRenderHint(QPainter.Antialiasing)

axis_x = QValueAxis()
axis_x.setTickCount(10)
axis_x.setTitleText('x')
self.chart.addAxis(axis_x, Qt.AlignBottom)

axis_y= QValueAxis()
axis_y.setLinePenColor(Qt.red)
self.chart.addAxis(axis_y, Qt.AlignLeft)

series = QLineSeries()
series.setPointsVisible(True)
series.hovered.connect(self.show_tool_tip)
series << QPointF(1, 5) << QPointF(3.5, 18) << QPointF(4.8, 7.5) << QPointF(10, 2.5)

series.attachAxis(axis_x)
series.attachAxis(axis_y)
self.chart.addSeries(series)
self.value_label = QLabel(self)

def show_tool_tip(self, pt, state):
pos = self.chart.mapToPosition(pt)
if state:
self.value_label.move(int(pos.x()), int(pos.y()))
self.value_label.setText(f'{pt}')
self.value_label.show()
else:
self.value_label.hide()

image

最佳答案

1。添加自定义轴:

如果您在控制台/CMD 中运行代码,您将得到以下命令:

Series not in the chart. Please addSeries to chart first.
Series not in the chart. Please addSeries to chart first.

这清楚地表明您必须首先将系列添加到 QChart,然后添加坐标区:

self.chart.addSeries(series) # first add the series
series.attachAxis(axis_x)
series.attachAxis(axis_y)
<小时/>

2。在对应点显示QLabel:

问题在于,由于线条太细,鼠标进进出出导致悬停的每一个时刻都会发出,使其看起来像是隐藏在我们的眼睛之外。

等待我的评论得到答复以提出解决方案。

关于python - QChart 添加轴未显示,悬停时信息无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58350723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com