Qt LNK1120 Неразрешенный внешний

Я пытаюсь заставить следующий код работать, но не знаю, почему я получаю эту ошибку.

У меня есть mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "user.h"#include <QObject>
#include <QEvent>

#include "logindialog.h"
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:

void on_actionTest_triggered();

void on_actionExit_triggered();

private:
Ui::MainWindow *ui;
User *_User;

void doLogin(void);
User getUser(QString);
};

#endif // MAINWINDOW_H

и windwindow.cpp

#include "mainwindow.h"#include "ui_RMS_MainWindow.h"#include "logindialog.h"#include <QtCore>
#include <QtGui>
#include <QDebug>
#include <QApplication>

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

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

void doLogin()
{
//LoginDialog aLoginDialog;
//aLoginDialog.setModal(true);
//aLoginDialog.exec();

qDebug() << "user log in needed";
}

void MainWindow::on_actionTest_triggered()
{
if(_User == NULL)
{
qDebug() << "user log in needed";
MainWindow::doLogin();
}
else
{
qDebug() << "sepp";
}
}

void MainWindow::on_actionExit_triggered()
{
QCoreApplication::quit();
}

Когда я пытаюсь запустить код, чтобы открыть диалоговое окно в действии, вызванном кнопкой, оно запускается, когда я пытаюсь вызвать MainWindow :: doLogin, я получаю ошибку «unresolved externals».

-1

Решение

Гектометр У тебя есть doLogin() функция определена, но это не MainWindow метод класса.
Вы должны определить это как

void MainWindow::doLogin()
1

Другие решения

В windwindow.cpp у вас есть:

void doLogin()
{
//LoginDialog aLoginDialog;
//aLoginDialog.setModal(true);
//aLoginDialog.exec();

qDebug() << "user log in needed";
}

Вы должны изменить на:

void MainWindow::doLogin()
{
//LoginDialog aLoginDialog;
//aLoginDialog.setModal(true);
//aLoginDialog.exec();

qDebug() << "user log in needed";
}

Как и сейчас, эта функция не реализована в классе MainWindow.

0

По вопросам рекламы [email protected]