找不到QwtPlotPicker信号

时间:2017-03-06 14:56:53

标签: c++ qt qwt

我试图在单击QwtPlot时调用函数,但是,将信号连接到函数会失败。

当我运行这个最小的例子时

#include <QApplication>
#include <cassert>
#include <qwt_picker_machine.h>
#include <qwt_plot.h>
#include <qwt_plot_picker.h>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QwtPlot plot;
    QwtPlotPicker picker{plot.canvas()};
    picker.setStateMachine(new QwtPickerClickPointMachine);
    auto connection = QObject::connect(
        &picker,
        qOverload<const QPointF &>(&QwtPlotPicker::selected),
        [](const QPointF &point) { qDebug() << point.x() << point.y(); }
    );
    assert(connection);
    return 0;
}

我在控制台输出中收到此QtWarningMsg消息

  

在QwtPlotPicker中找不到QObject :: connect:signal

并且断言失败。

Qwt-documentation表示void QwtPlotPicker::selected(const QPointF &pos)存在并且是一个信号 为什么没找到?

相反,这种连接工作正常:

auto connection = QObject::connect(
    &plot,
    &QwtPlot::windowTitleChanged,
    [](const QString &title) { qDebug() << title; }
);
assert(connection);

Related question

该问题与qOverloadQwtPlotPicker::selected

重载无关
auto connection = QObject::connect(
    &picker,
    &QwtPlotPicker::activated,
    [](bool) { qDebug() << "activated"; }
);

有同样的问题。

我使用Qwt 6.1.3和Qt 5.8.0-1与MinGW gcc 5.3.0-1。

0 个答案:

没有答案