c++ - 类中成员函数声明的问题

标签 c++ qt qt5 qmainwindow

一段时间以来,我一直在与 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/

相关文章:

c++ - 在状态栏上显示来自不同线程中的回调的消息

javascript - QWebElement评估JavaScript this.click()方法不起作用

c++ - 找出链表的长度是偶数还是奇数

c++ - Qt 从布局中取出一个小部件,但保持当前位置

c++ - 动态输出文件名 (C++)

c++ - 在 QLineEdit 中接收转义事件?

c++ - Qt VideoWidget 示例

c++ - 零初始化、未命名、临时无符号整数

c++ - SQLite增量整数主键和唯一约束冲突

C++ 指针 GUI QT