【发布时间】:2013-06-18 15:42:27
【问题描述】:
我正在尝试在我的 3 个窗口之间建立链接,所以我把它放在我的 mainwindow.h 中:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "video.h"
#include "flightdata.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void openNewWindowVideo();
void openNewWindowData();
private:
Ui::MainWindow *ui;
video *myVideoWindow;
flightdata *myDataWindow;
};
#endif // MAINWINDOW_H
这在我的实现中:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionVideo,SIGNAL(triggered()),this,SLOT(openNewWindowVideo()));
connect(ui->actionFlight_data,SIGNAL(triggered()),this,SLOT(openNewWindowData()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::openNewWindowVideo()
{
myVideoWindow = new video();
myVideoWindow->show();
this->close();
}
void MainWindow::openNewWindowData()
{
myDataWindow = new flightdata();
myDataWindow->show();
this->close();
}
这行得通。
但是当 O 对其他 2 个窗口(@987654324@ + file.cpp)执行相同的步骤时,
我得到错误: qt 错误:'flightdata' 没有命名类型 qt 错误:“视频”未命名类型
但是当我只包含第一个窗口而不包含其他 2 个窗口时,我没有遇到这个问题。
可能是递归引起的。
【问题讨论】:
-
您是否在任何地方都包含您需要的所有文件?
-
是的,问题是我必须包含 3 个文件,并且每次我必须在每个班级中包含 2 个文件,但是当我只为一个班级这样做时,它可以 10/10 工作,但是当我如果我在 Y.h 中包含 X.h,并且在某些时候我需要在 X.h 中包含 Y.h,qt 将无法生成文件
-
转发声明你的类