没有在'MainWindow'类中声明的成员函数

时间:2017-12-06 14:17:55

标签: c++ qt

我正在尝试为恶作剧制作一个虚假的FBI程序,但这并不像我预期的那么容易。 这是我的代码。

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->trackConnButton->setEnabled(false);
}

void MainWindow::on_confirmButton_clicked() {
    if (ui->usernameText == "name" && ui->passwordText == "password") {
        ui->resullabel->setText("Password accepted.");
        ui->trackConnButton->setEnabled(true);
    } else {
        ui->resullabel->setText("Password denied.");
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}

我收到此错误:

D:\Qt-Projekte\test3\mainwindow.cpp:12: Fehler: no 'void MainWindow::on_confirmButton_clicked()' member function declared in class 'MainWindow'
 void MainWindow::on_confirmButton_clicked() {
                                           ^

我现在的问题是:如何解决? 提前谢谢。

my mainwindow.h:

#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

1 个答案:

答案 0 :(得分:0)

类的所有成员函数必须包含“声明”和“定义”。

例如:

struct Foo {
    // Declarations
    void foo() const;
    int bar(int x);
};

// Definitions
void Foo::foo() const {
    std::cout << "foo" << std::endl;
}
int Foo::bar(int x) {
    return x + 1;
}

(注意,如果在类中定义内联函数,它将同时作为定义和声明):

struct Foo {
    // Declaration AND definition
    void foo() const {
        std::cout << "foo inline" << std::endl;
    }
};

因此,在您的情况下,您必须在类on_confirmButton_clicked的定义中声明MainWindow函数。