即使在派生和添加宏之后也无法连接

时间:2014-01-02 14:21:02

标签: c++ qt

我在头文件中创建了一个类。

班级宣言:

class myTimer : public QObject
{
    Q_OBJECT
    ~snipped~

我有一个自定义插槽:

private slots:
    void mySlot();

和自定义信号:

signals:
    QString mySignal();

广告位只会发出mySignal,然后会返回QString

我将QPushButtonmySlot

相关联
connect(ui->startButton, SIGNAL(clicked()),
        timer, SLOT(mySlot()));

mySignal到LCD编号:

connect(timer, SIGNAL(mySignal()),
        ui->lcdNumber, SLOT(display(QString)));

这里timer是我声明的类的对象。在两个连接语句中,我得到错误unable to convert parameter to const QObject*指向对象'计时器'。

我不知道为什么这个错误正在发生,即使我已经从QObject adn添加了Q_OBJECT宏。

2 个答案:

答案 0 :(得分:4)

connect函数的第一个参数应该是const QObject*。无法将myTimer转换为const QObject *,因为其中一个是对象而另一个是指针。您可能需要&timer

答案 1 :(得分:1)

信号不能返回任何值(返回值应为无效)

如果要通过信号传递值,则应添加参数:

signals:
    void mySignal(QString);

然后连接为:

connect(timer, SIGNAL(mySignal(QString)),
        ui->lcdNumber, SLOT(display(QString)));