Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ Непонятки с QPainter

Автор: Mystdeim 11.9.2008, 12:33

Не могу объявить объект класса QPainter.

lab1.h:

#include "ui_lab1.h"

class lab1: public QWidget {
Q_OBJECT
private:
    Ui::lab1Class ui;
protected:
    virtual void paintEvent(QPaintEvent* pe) {
    }
public:
    lab1(QWidget *parent = 0);
    ~lab1();
    void drawgraph();
};


lab1.cpp
#include "lab1.h"

lab1::lab1(QWidget *parent) : QWidget(parent) {
        ui.setupUi(this);
    }

lab1::~lab1() {

}
void paintEvent(QPaintEvent* pe) {
    QPainter painter1; //Тут ошибка
....
}


Компилятор пишет:
Цитата
lab1.cpp:13: error: aggregate `QPainter painter1' has incomplete type and cannot be defined


Не понимаю что не нравиться... лаба стоит :(

Автор: trdm 11.9.2008, 12:39

#include <QPainter>

Автор: Mystdeim 11.9.2008, 12:51

Спасибо, помогло, не знал что отдельно надо объявлять

Автор: ЙаМайскЫйПчОЛ 11.9.2008, 13:19

Мне кажется корректней было бы #include <QtGui>
ибо не знаешь, где найдешь где потеряешь)

не забывай ставить макросы на хедеры, типа

#ifndef __ХХХ__
#define __ХХХ__

// вставь код сюда


#endif // __ХХХ__

Автор: Litkevich Yuriy 11.9.2008, 16:50

Цитата(Mystdeim @ 11.9.2008, 16:51) *
не знал что отдельно надо объявлять
что значет отдельно, откуда компиллер знать будет где какие файлы.
На первых порах лучше используй как сказал
Цитата(ЙаМайскЫйПчОЛ @ 11.9.2008, 17:19) *
Мне кажется корректней было бы #include <QtGui>
хотя это не корректней, а проще, но компиллер будет метатся повсем файлам относящимся с модулю QtGui.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)