Здравствуйте, гость ( Вход | Регистрация )
|
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); } Стянуто это безобразие из примеров, однако даже не компилируется. И объясните пожалуйста для чего нужны параметры которые я закоментировал? Заранее спасибо. |
|
|
|
![]() |
|
Litkevich Yuriy |
23.11.2009, 16:50
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
по поводу первого parent, смотри "Link" (к сожалению ещё не переведено). Ну и описание конструктора класса QWidget:
Цитата QWidget::QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 ) Constructs a widget which is a child of parent, with widget flags set to f. If parent is 0, the new widget becomes a window. If parent is another widget, this widget becomes a child window inside parent. The new widget is deleted when its parent is deleted. Ну, а по поводу второго, можно посмотреть описание класса QPaintEvent Цитата(greh @ 23.11.2009, 19:42) Link Стянуто это безобразие из примеров, однако даже не компилируется. Стало быть стянуто плохо, во-первых раскомментируй то, что ты закомментировал. Во-вторых, добавь недостающие inlude
|
|
|
|
|
greh |
23.11.2009, 17:04
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 23.11.2009, 18:50) Link ... Спасибо! Скомпилировалось и нарсовалось. Только вот проблемка осталась... Как заставить его рисовать только тогда когдя я нажимаю кнопку(слот Paint() ) и как же всётаки работает event (ну хоть в кратце). |
|
|
|
greh Рисование в Qt 23.11.2009, 16:42
greh А всё придумал, по умолчанию rect(0,0,0,0) сделать... 23.11.2009, 18:39
Litkevich Yuriy Цитата(greh @ 23.11.2009, 20:04) как же в... 23.11.2009, 18:50
mettamo void MainWindow::paintEvent(QPaintEvent *)
{
if... 17.12.2009, 20:46
Litkevich Yuriy Цитата(mettamo @ 17.12.2009, 23:46) как р... 17.12.2009, 22:24
kwisp Цитата(Andrewshkovskii @ 18.12.2009, 11:5... 18.12.2009, 13:29
Andrewshkovskii Цитата(kwisp @ 18.12.2009, 13:29) Цитата(... 18.12.2009, 17:44
Litkevich Yuriy Цитата(kwisp @ 18.12.2009, 16:29) рисоват... 18.12.2009, 17:26![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 26.12.2025, 11:51 |