Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Помогите нарисовать линию


Автор: tumanovalex 7.4.2011, 09:45
Попробовал реализовать рисование линии через класс, в QTCreator получаю невнятную ошибку: 
Код
error: No rule to make target `Makefile.Debug'.  Stop
в Visual Studio более подробную информацию об ошибке:
Код
F:\myprogramqt\mylearningqt\mywindow.h(16) : warning C4100: e: неиспользованный формальный параметр
Компоновка...
mainwindow.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall MyWindow::~MyWindow(void)" (??1MyWindow@@UAE@XZ) в функции "public: virtual void * __thiscall MyWindow::`scalar deleting destructor'(unsigned int)" (??_GMyWindow@@UAEPAXI@Z)
debug\MyLearningQT.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
 Сам я не могу понять, где ошибка. Подскажите, пожалуйста, в чем моя ошибка? Прикрепляю проект.

Автор: _GRIN_ 7.4.2011, 10:09
tumanovalex, не определён конструктор и декструктор - тока объявление есть в MyWindow.h
Код

#ifndef MYWINDOW_H
#define MYWINDOW_H

#include <QMainWindow>
#include <QWidget>
#include <QPainter>
#include <QPen>

class MyWindow : public QWidget
{
    Q_OBJECT

public:
//    explicit MyWindow(QWidget *parent = 0);
    explicit MyWindow(QWidget *parent = 0) : QWidget(parent) {}
//    ~MyWindow();
    ~MyWindow(){}
    
    void paintEvent(QPaintEvent *e)
    {
      QPainter painter(this);
      QPen    pen(Qt::black);
      pen.setStyle(Qt::SolidLine);
      pen.setWidth(10);
      painter.setPen(pen);
      painter.drawLine(0, 0, 100, 100);
    }

    private slots:

   
};


#endif // MYWINDOW_H



p.s. - в линуксе имеет значени регистра имени файла, так что если файл MyWindow.h, а ты его инклудишь как "mywindow.h" - то получишь ошибку компиляции

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)