即,通过右键单击窗口小部件并选择“转到插槽...”来创建插槽。
示例1,这有效:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
这不是,因为显然设计师寻找Ui :: MainWindow *并且如果它找不到它就完全吓坏了(得到“包含'Ui :: MainWindow'的类无法找到......” )
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <memory>
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
std::unique_ptr<Ui::MainWindow> ui;
};
#endif // MAINWINDOW_H
我基本上正在寻找一种方法来告诉Qt“是的,我真的是指那个班级。我知道它不包含Ui :: MainWindow *,一切都会好的......”。除非我错了,并且由于某种原因,类实际上需要将它作为普通指针。
答案 0 :(得分:0)
当QT创建者找不到您的“ mainwindow.cpp”文件来放置插槽函数定义时,发生“找不到包含'Ui :: MainWindow'的类...”的问题。
确保您的mainwindow.h具有以下内容作为私有变量:
Ui::MainWindow *ui;
并且在mainwindow.cpp文件中包含以下内容:
#include "ui_mainwindow.h"
如果这不起作用,则您的QT创建者可能存在错误。尝试更新您的软件。