小编Nic*_*zak的帖子

Qt插槽和信号语法

我已经搜索了大量的帮助讨论并阅读了多个教程,但我仍然不理解Qt信号和插槽的正确语法,使用Qt Core 5.0我创建了一个非常简单的程序,有两个对象来尝试理解这个语法.(如下所示).每次编译此代码时,都会收到以下错误:

'int'之前的预期primary-expression

请帮我解答以下问题:

  1. 我写的代码有什么问题?

  2. Qt connect函数是否需要指向对象引用(&mySig)而不是直接指向对象?

  3. 当我使用包含参数的插槽和信号时,在连接功能中,我是否需要为这些参数提供变量,或者只是说明数据类型,如下面的代码所示?

  4. 最后,我想使用插槽和信号在我正在编写的程序中的对象之间传递数据.插槽和信号是否允许我传递从QObject派生的其他对象?或者我需要做一些额外的事情吗?

  5. 我看到许多对使用的connect语句格式的引用

    QObject :: contect(&mySig,SIGNAL(sig_1(int)),&mySlot,SLOT(slot1(int)));

    这种格式在Qt 5.0 Core下仍然有效吗?

非常感谢所有的帮助!简单程序代码如下.

#include <QCoreApplication>
#include <QObject>
#include <iostream>

using namespace std;

//================================================================================
class testSig : public QObject
{
    Q_OBJECT
public:
    explicit testSig(QObject *parent = 0) :
        QObject(parent)
    {
    }

    void getNum()
    {
        int t;
        cout << endl << endl << "Please Enter Number:  ";
        cin >> t;
        emit sig_1(t);
    }

signals:
    void sig_1(int i );
};

//================================================================================
class testSlot : public QObject
{
    Q_OBJECT …
Run Code Online (Sandbox Code Playgroud)

c++ syntax qt signals slot

2
推荐指数
1
解决办法
2219
查看次数

标签 统计

c++ ×1

qt ×1

signals ×1

slot ×1

syntax ×1