Qt,将数据传递给另一个class

Qt, pass data to another class

我想在从 mainwindow.cpp 单击按钮时将 int 测试传递给 dialog.cpp。

我收到如下错误信息:"missing default argument on parameter testing"

我做错了什么?

dialog.h

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = nullptr, const int & testing);
    ~Dialog();

private:
    Ui::Dialog *ui;
};

dialog.cpp

Dialog::Dialog(QWidget *parent, const int & testing) :
    QDialog(parent),
    ui(new Ui::Dialog)
{   
}

mainwindow.cpp

dialog = new Dialog(this, *testing);

这是无效的:

Dialog(QWidget *parent = nullptr, const int & testing);

因为默认值必须始终在非值之后....所以您的整数参数 "testing" 不能放在父级之后。

为整数设置默认值:

Dialog(QWidget *parent = nullptr, const int & testing = 0);

或者在构造函数中改变它的顺序

Dialog(const int & testing, QWidget *parent = nullptr);