C++ “was not declared in this scope” 编译错误

标签 c++

我是 C++ 和 QT 的新手,我正在使用 QT Creator,我创建了一个名为 nGui 的 QT Widget 项目,添加了一个名为 mydlg 的 QT-QT Designer 表单类,我一直在尝试在窗口,当您单击它时会打开另一个窗口,而原始窗口会继续显示。这是我的代码,但它总是显示错误:“my2”未在此范围内声明。我已经在 widget.h 中声明了 'my2',并且我在 mydlg.cpp 中包含了 widget.h 文件,我不知道哪里错了,有人可以帮我吗?非常感谢!

mydlg.cpp

#include "mydlg.h"
#include "ui_mydlg.h"
myDlg::myDlg(QWidget *parent) :
QDialog(parent),
ui(new Ui::myDlg)

{
     ui->setupUi(this);
}

myDlg::~myDlg()

{

    delete ui;

}


void myDlg::on_pushButton_clicked()

{

     my2.show();

}

小部件.h

#ifndef WIDGET_H

#define WIDGET_H

#include <QWidget>

#include"mydlg.h"

namespace Ui 
{
    class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

    public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

    private:
    Ui::Widget *ui;
    myDlg my2;
    private slots:
    void on_pushButton_clicked();
};

 #endif // WIDGET_H

主要.cpp

#include <QtGui/QApplication>

#include "widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

最佳答案

my2Widget 类中声明,但您试图在 myDlg 类的成员函数中访问它。

关于C++ “was not declared in this scope” 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017702/

相关文章:

c++ - 为什么不能 map::find 指向 const 的指针?

c++ - 如何将二进制文件内容读取为字符串?

c++ - 为什么在 std 字符串中间设置 null 没有任何效果

c++ - Qt旋转形状

c++ - 静态成员初始化链接错误

c++ - 修剪空格 C++ POINTERS

c++ - 为什么在这种情况下不调用赋值运算符以支持复制构造函数?

c++ - cin:检查数字是整数还是 float ,即使浮点值是 1.000

c++ - type_traits 中是否有类似 std::remove_const_reference 的东西

c++ - 用Qt播放特定的系统声音