Gremlin92
@Gremlin92
Целеустремленный

Не получается запустить код?

main.cpp
#include <iostream>
#include <QtWidgets/QApplication>
#include "MainWindow.h"

int main(int argc,char*argv[])
{
    QApplication a(argc, argv);
    MainWindow mw;
   
    return a.exec();
}

MainWindow.h
#pragma once
#include <QtWidgets/qmainwindow.h>
#include <QtGui/qpicture.h>
#include <QtGui/qimage.h>
#include <QtGui/qpainter.h>
#pragma comment(lib,"Qt5Core.lib")
#pragma comment(lib,"Qt5Widgets.lib")
#pragma comment(lib,"Qt5Gui.lib")
namespace Ui {
    class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget* parent = 0);
    ~MainWindow();
protected:
    void paintEvent(QPaintEvent*); // пееопределение виртуальной функции
private:
    Ui::MainWindow* ui;
};

MainWindow.cpp
#include "MainWindow.h"
void MainWindow::paintEvent(QPaintEvent*)
{
    QImage img("sea.png"); // загружаем картинку
    QPainter painter(this); // определяем объект painter, который обеспечивает рисование
    painter.drawImage(0, 0, img.scaled(this->size())); // рисуем наше изображение от 0,0 и растягиваем по всему виджету
}

Выдает ошибку
Ошибка	LNK2001	неразрешенный внешний символ "public: virtual __cdecl MainWindow::~MainWindow(void)" (??1MainWindow@@UEAA@XZ).	
и
Ошибка	LNK2001	неразрешенный внешний символ "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z).
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
Gremlin92
@Gremlin92 Автор вопроса
Целеустремленный
3акомментировал в хидере в классе QOBJECT и диструктор, добавил реали3ацию конструктора в MainWindow.cpp:
MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent)
{
    setWindowTitle(tr("Window"));
    setGeometry(0, 0, 1000, 700);
}

и в основном main.cpp добавил
#include <iostream>
#include <QtWidgets/QApplication>
#include "MainWindow.h"

#pragma comment(lib,"Qt5Widgets.lib")

int main(int argc,char*argv[])
{
    QApplication a(argc, argv);
    QWidget qw;
    //qw.show();
    MainWindow mw(&qw);
    mw.show();
    return a.exec();
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы