Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.185.180] |
|
Сообщ.
#1
,
|
|
|
Не понимаю почему скомпиленная программа не рисует на виджете?
Код: #include<QtGui> #include<math.h> int main(int argc, char **argv) { QApplication app(argc, argv); QWidget wgt; wgt.setWindowTitle("MyWidget"); wgt.resize(800, 600); QPainter *pntr; pntr=new QPainter(&wgt); pntr->setPen(QPen(Qt::red, 3, Qt::SolidLine)); pntr->setBrush(QBrush(Qt::red, Qt::SolidPattern)); //pntr->begin(&wgt); int n=8; for(int i=0; i<n; i++) { float fAngle=2*3.14*i/n; int x=400+cos(fAngle)*40; int y=300+sin(fAngle)*40; pntr->drawPoint(x, y); } pntr->drawLine(10, 10, 90, 90); //pntr->end(); wgt.update(0, 0, 800, 600); wgt.show(); app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit())); return app.exec(); } |
Сообщ.
#2
,
|
|
|
Склмпилял, я ваш примерчик у себя, потом запустил, и вот что он мне написал :
Цитата QPainter::begin: Widget painting can only begin as a result of a paintEvent так что рисование на виджете возможно только в событии PaintEvent. |
Сообщ.
#3
,
|
|
|
Спасибо... помог советом. Перекрыл событие paintEvent и все заработало!
Странно правда почему у меня компилятор не вывел хотя бы предупреждения... |
Сообщ.
#4
,
|
|
|
потому что это сообщение выводит отладчик, а не компилятор.
|
Сообщ.
#5
,
|
|
|
Цитата sploid @ потому что это сообщение выводит отладчик, а не компилятор. это вывел даже не отладчик, а сама библиотека. |