类中的成员函数声明问题

时间:2017-07-04 15:08:12

标签: c++ qt qt5 qmainwindow

我一直在与Qt上的问题争论一段时间,并且我想到这里来看看是否有人有任何解决方案。

我使用QT工具创建了一个GUI,并为每个事物编写了所有功能。但是,我似乎无法成功纠正以下问题:

  

C:\ Python34 \ 2SprayCoater \ mainwindow.cpp:11:错误:否' int   主窗口::主窗口(QWidget的*)'在类中声明的成员函数   '主窗口'主窗口:: MainWindow的(QWidget的   *亲本):的QMainWindow(父)

来自相关库的代码部分是:

#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);
}

我试图通过简单地改变显式

来解决这个问题
  

mainwindow(QWidget * parent = 0);

在头文件中

  

explicit mainwindow(QWidget * parent = 0):QMainWindow(parent);

这最终会产生一系列不同的问题,但修复了原始问题。我错过了什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

生成问题的原因是您删除了一些必要的标题,例如:

#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]