一段时间以来,我一直在与 Qt 上的一个问题作斗争,我想我应该来这里看看是否有人有任何解决方案。
我已经使用 QT 工具创建了一个 GUI,并为每个事物编写了所有功能。但是,我似乎无法成功纠正以下问题:
C:\Python34\2SprayCoater\mainwindow.cpp:11: error: no 'int mainwindow::MainWindow(QWidget*)' member function declared in class 'mainwindow' mainwindow::MainWindow(QWidget *parent):QMainWindow(parent)
相关库中的部分代码是:
#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();
而cpp文件中对这段代码的引用是:
#include "mainwindow.h"
#include <QApplication>
#include "main.cpp"
#include <QtSerialPort/QSerialPort>
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
mainwindow::MainWindow(QWidget *parent):QMainWindow(parent)
{
ui.setupUi(this);
}
我试图通过简单地更改 explicit 来解决这个问题
mainwindow(QWidget *parent = 0);
在头文件中
explicit mainwindow(QWidget *parent = 0):QMainWindow(parent);
这最终会造成一系列不同的问题,但会修复原始问题。我错过了什么?提前致谢。
最佳答案
问题的产生是因为您删除了一些必要的 header ,例如:
#include "ui_mainwindow.h"
这是由 .ui 文件生成的,即在编译之前将设计转换为代码。 ui 属性需要该文件,而且 ui 是一个指针,因此要访问它的方法,您必须使用 ->
。你必须改变:
ui.setupUi(this);
到
ui->setupUi(this);
另一个严重的问题是您在构造函数中将 mainwindow 重命名为 MainWindow。
explicit mainwindow(QWidget *parent = 0);
mainwindow::MainWindow(QWidget *parent):QMainWindow(parent)
[here]
关于c++ - 类中成员函数声明的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909346/