LINUX.ORG.RU

Не получается гарисовать две точки разного цвета в QT


0

0

#include <qpainter.h>

QPainter *p = new QPainter();

void mainwindow::drow()

{ p -> begin (this);

p -> setPen(QColor(255,0,255));

p -> drawPoint (10,10);

p -> setPen(QColor(0,255,0));

p -> drawPoint (15,15);

p -> end();

}

вот такой код есть. Рисует две точки только первая рисуется а втрорая нет, хотя если сделать их одинаковым цветом как у первой то нарисуются обе если разным то только первая. Пробовал moveTo но безреультатно, как не рисовалась так и не рисуется. Подскажите что не так и как бороться. :(

Заранее спасибо!!!

★★★★★

#include <qapplication.h>
#include <qwidget.h>
#include <qpainter.h>

class MyWidget : public QWidget{
public:
MyWidget(QWidget* p =0):QWidget(p){}
void paintEvent(QPaintEvent*){
QPainter p(this);
p.setPen(Qt::red);
for(int x = 0; x < width(); x++) p.drawPoint(x,height()/2);
p.setPen(Qt::blue);
for(int y = 0; y < height(); y++) p.drawPoint(width()/2,y);

p.setPen(QColor(255,0,0));
p.drawPoint(10,10);
p.setPen(QColor(0,255,0));
p.drawPoint(15,15);
p.setPen(QColor(0,0,255));
p.drawPoint(20,20);

p.end();
}
void keyPressEvent(QKeyEvent* e){
if(e->key() == Qt::Key_Escape) qApp->quit();
}
};

int main(int ac, char** av){
QApplication a(ac,av);
MyWidget w;
a.setMainWidget(&w);
w.show();
return a.exec();
}


Все работает...

anonymous
()
Ответ на: комментарий от anonymous

так в том то и дело что не получается нарисовать точки разного цвета в произвольной позиции, т.е. не в цикле от 0 а в конкретном месте (12,12) , (20,20) а так как ты сказал у меня циклы рисуют.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Я что-то не понял: QPainter* p = new QPainter(); - Это что - динамическое
создание глобального пайнтера? Тогда причина может быть в том, что он
создается до появления объекта QApplication. Попробуй его создать после
того как QApplication создан...

anonymous
()
Ответ на: комментарий от anonymous

Всё проблема решена, и мой и второй код приведённый сдесь рабоает, не понял где была проблема, но её больше нет. Сейчас мучаюсь с другой, это процесс для рисования нужен для вывода графического файла, а именно bmp. И что я заметил доведя прогу до состояния ниже альфы (ЗЫ: о как сказал) понял что бмпешки тоже бывают разные и выводятся по разному покрайней мере две картинки одинаково не вывелись. (только одна вывелась более менее близко к оргигиналу) Прошу мне не напоминать что есть стандаотные функции но они не подходят в связи с тем что другой граф-й формат, разрабатываемый мной не поддерживатся этими функциями, да и просто инетересно было как это работает.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.