即,通过右键单击窗口小部件并选择“转到插槽...”来创建插槽。
示例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 *,没关系,一切都会好起来的……”。除非我错了,并且出于某种原因,该类实际上需要将此作为普通指针。]
即,通过右键单击窗口小部件并选择“转到插槽...”来创建插槽。示例1,可以正常工作:#ifndef MAINWINDOW_H #define MAINWINDOW_H #include
QT创建者找不到您的“ mainwindow.cpp”文件来放置插槽功能定义。检查以下行是否在您的mainwindow.cpp文件中: