我在使用 Qt 时遇到了一些问题。
我有一门课'核心'
class Core {
public:
static QString get_file_content(QString filename);
static void setMainwindow(Ui::MainWindow const *w);
private:
static MainWindow *main_window;
};
和命名空间 Ui 中的类“MainWindow”:
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
在 MainWindow 构造函数中,我制作
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
Core::setMainwindow(this);
}
并得到错误
mainwindow.cpp:8: error: no matching function for call to 'Core::setMainwindow(MainWindow* const)'
当然,我将 core.h 包含在“Core”类的声明中。
这仅发生在 setMainwindow 方法上。
所以问题是 - 为什么核心类方法 setMainwindow() 在 MainWindow 类中是不可见的?