Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Sun от Апрель 21, 2005, 15:56 Не могу понять почему этот код не рисует линию........может что не правильно........ :oops:
#include <qpainter.h> #include <qbrush.h> #include <qpen.h> #include <qfont.h> #include <qcolor.h> int main (int argc, char **argv){ QApplication a(argc, argv); QWidget *w = new QWidget(0, 0, 0); w->setPalette(QPalette(QColor(0, 0, 255))); QPainter p; QBrush brush(QColor(255,0,0)); QPen pen(QColor(255,0,0), 2); p.begin(w); p.setBrush(brush); p.setPen(pen); p.drawLine(10,20,60,60); p.end(); a.setMainWidget(w); w->show(); return a.exec(); } За ранее спасибо. Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Zigmar от Апрель 21, 2005, 19:34 Ну логично. Ты пытаешься рисовать на невидимом виджите (что вообще бессмысленно), а только потом вызываешь show, в процессе которого отрисовывается сам виджет в первый раз. Даже еслиб рисование на невидимом виджите что-то бы и делало, оно бы всё равного оказалось бы затерто при этой отрисовке.
Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Hellenna от Апрель 21, 2005, 20:08 Надо примерно так:
Код:
в my_paint_widget.h Код: #ifndef MY_PAINT_WIDGET_H в файле my_paint_widget.cpp Код: #include "my_paint_widget.h" p.s. мое первое приложение на qt под виндой ;) Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Sun от Апрель 22, 2005, 07:16 Спасибо большое :D
Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Sun от Апрель 24, 2005, 18:52 А ли можно рисовать минуя painEvent???
Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Zigmar от Апрель 26, 2005, 00:25 Цитата: "Sun" А ли можно рисовать минуя painEvent??? Теоретически можно, вопрос зачем. Я подозреваю, что то что ты хочешь сделать (рисовать что-то не в paint event), надо вообще делать не через painter а например с помощью canvas. Впрочем, если расскажешь что нужно, может смогу подсказать где искать... Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Sun от Апрель 26, 2005, 12:34 Ну допустим у меня есть главное окно приложения (это серверная часть), я хочу рисовать в нем различные простые фигурки - линии, квадратики и т. д. в зависимости от того, что захочет клиент. Вот. Если непонятно.....то постараюсь поконкретнее.....
Может можно создать свои виджеты н-р QLine.....и использовать их??? Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Zigmar от Апрель 26, 2005, 20:07 Я думаю что тебе лучше всего подойдет QCanvas - это модуль который позволяет работать с векторной графикой на высоком уровне. Т.е. тебе не надо как с QPainter-ов переписывать paint event и каждый раз всё рисовать в ручную, а ты просто создаешь объекты (QCanvasLine, QCanvasText и т.д.) добавляешь их на QCanvas, и он уже сам рисует их, скролит, и занимается остальной работой вместо тебя (включая double buffering, трансформации и т.д.).
Название: Помогите плиззззззз. Не могу нарисовать линию. Отправлено: Sun от Апрель 27, 2005, 02:51 Спасибочки!!!! Буду разбираться дальше.
|