【问题标题】:QChart add axis not show and when hovered info not work correct?QChart 添加轴不显示,当悬停信息不正确时?
【发布时间】:2019-10-12 03:57:19
【问题描述】:

我用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()

【问题讨论】:

  • 您的第二个问题令人困惑。当鼠标悬停在图形的直线或顶点上时,您希望显示 QLabel 吗?
  • 我想在鼠标悬停在该点时显示一些消息的 QLabel,我在 pycharm 中运行 pyqt,我忘记再次运行 cmd,因为 pycharm 不显示任何警告消息(对不起)。
  • 点是什么意思?您是指点 (1, 5), (3.5, 18), (4.8, 7.5), (10, 2.5) 还是您也希望它发生在属于连接先前点的线的点?
  • @eyllanesc 只有点 (1, 5), (3.5, 18), (4.8, 7.5), (10, 2.5) 在鼠标悬停时显示。

标签: python pyqt pyqt5 qchart


【解决方案1】:

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:

问题是因为线太细了,鼠标一进一出,让悬停的东西每时每刻都被发射出来,就好像隐藏在我们的眼睛里一样。

等待回答我的评论以提出解决方案。

【讨论】:

猜你喜欢
  • 2014-05-07
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2012-06-14
  • 2013-11-23
相关资源
最近更新 更多