Рисование в Qt |
Здравствуйте, гость ( Вход | Регистрация )
Рисование в Qt |
greh |
23.11.2009, 16:42
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток. Помогите разобраться с рисованием в Qt.
Вот класс отвечающий за виджет на котором рисуются фигуры: paintarea.h: CODE #ifndef PAINTAREA_H #define PAINTAREA_H #include <QWidget> #include <QBrush> #include <QPen> class PaintArea: public QWidget { Q_OBJECT public: PaintArea(/*QWidget *parent = 0*/); //for what? void paintEvent(/*QPaintEvent *event*/); //for what? public slots: void Paint(); }; #endif // PAINTAREA_H paintarea.cpp: CODE #include "paintarea.h" PaintArea::PaintArea() { setFixedSize(500,500); } void PaintArea::Paint() { update(); } void PaintArea::paintEvent(/*QPaintEvent **/) //for what? { QRect rect(10,20,30,40); QPainter painter(this);//paintarea.cpp:17: error: variable ‘QPainter painter’ has initializer but incomplete type painter.setRenderHint(QPainter::Antialiasing,true); painter.setPen(QPen(Qt::black,10)); painter.setBrush(QBrush(Qt::green)); painter.drawRect(rect); } Стянуто это безобразие из примеров, однако даже не компилируется. И объясните пожалуйста для чего нужны параметры которые я закоментировал? Заранее спасибо. |
|
|
mettamo |
17.12.2009, 19:20
Сообщение
#2
|
Студент Группа: Участник Сообщений: 43 Регистрация: 22.10.2009 Пользователь №: 1173 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вообщем я пытаюсь рисовать на виджите
как сделать чтоб он рисовал по нажатию кнопки а не при запуске программы? |
|
|
Andrewshkovskii |
18.12.2009, 11:56
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Вообщем я пытаюсь рисовать на виджите
как сделать чтоб он рисовал по нажатию кнопки а не при запуске программы? Я все же попробую ответить, хотя Юрий будет на меня ругаться:) paintEvent вызывается на виджете каждый раз, когда происходит событие отрисовки. Он вызывается что бы перерисовать весь или часть виджета. Цитата A paint event is a request to repaint all or part of a widget. It can happen for one of the following reasons: repaint() or update() was invoked, the widget was obscured and has now been uncovered, or many other reasons. Проще говоря, когда ты мышкой по своим контролам водишь - он вызывается. когда изменяет размер, положение виджета, когда сворачиваешь и разворачиваешь его.. А не только при запуске программы. тебе надо определить слот для сигнала своей кнопки, в котором ты будешь рисовать на виджете QPainter'ом... |
|
|
Текстовая версия | Сейчас: 23.12.2024, 23:31 |