c++ - 即使在派生和添加宏后也无法连接

标签 c++ qt

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

类声明:

class myTimer : public QObject
{
    Q_OBJECT
    ~snipped~

我有一个自定义插槽:

private slots:
    void mySlot();

和自定义信号:

signals:
    QString mySignal();

插槽简单地发出 mySignal 然后返回一个 QString

我将 QPushButton 连接到 mySlot:

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* pointing to the object 'timer'。

我不知道为什么会出现这个错误,即使我已经正确地从 QObject 派生并添加了 Q_OBJECT 宏。

最佳答案

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

关于c++ - 即使在派生和添加宏后也无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884985/

相关文章:

c++ - 全局命名空间前缀的规则和实践?

c++ - 在 icu::BreakIterator 中查找中断类型

c++ - c++中成员函数模板的特化

c++ - 使用QProcess执行命令并将结果存储在QStringList中

c++ - SDL 错误 Undefined symbols for architecture x86_64 "_SDL_main"

macos - Qt + cocoa : Undefined symbols for architecture x86_64

c++ - QSqlQuery 将 QByteArray 作为字符串插入 PostgreSQL

c++ - QT程序无法启动,因为缺少libgcc_s_dw2-1.dll

c++ - JNI 使用多线程从 C++ 调用 Java

c++ - boost::asio::io_service 优先级如何工作?