Название: Почему не рисует?
Отправлено: Martiro от Ноябрь 28, 2007, 13:10
Никак не могу разобраться... Есть форма (от QScrollView), на ней виджет... рисую что-то в канве и нулевой результат... :( #include "fr_img.h"
//========================================== // Конструктор //========================================== DocWindow::DocWindow(QWidget* pwgt, const char * pszName, WFlags flags) : QScrollView(pwgt, pszName) { wImage = new QWidget(this->viewport(),0, Qt::WNoAutoErase); addChild(wImage); wImage->setCursor(Qt::CrossCursor); resize(400,300); }
//========================================== // Загрузка формы //========================================== void DocWindow::loadBmp(QString sFileName) {QApplication::setOverrideCursor( waitCursor ); m_strFileName = sFileName; img.load(m_strFileName); wImage->resize(img.width(), img.height()); wImage->setBackgroundPixmap(img); QApplication::restoreOverrideCursor(); }
............................................ ............................................
//========================================== // Оторисовка линии //========================================== void DocWindow::drawLine( QPainter *paint ) { QCanvas canvas(wImage); canvas->resize(img.width(), img.height()); QCanvasRectangle pCR = new QCanvasRectangle(&canvas); pCR->setPen(Qt::black); pCR->setBrush(Qt::green); pCR->setSize(120, 80); pCR->setX(10); pCR->setY(10); pCR->show();
canvas.update(); }
Название: Re: Почему не рисует?
Отправлено: Martiro от Ноябрь 29, 2007, 09:10
Давил отрисовку в paintEvent, но результата никакого...
Название: Re: Почему не рисует?
Отправлено: BaltikS от Ноябрь 29, 2007, 10:40
Честно говоря, не фига не понятно.... Причём тут QScrollView и QCanvas? Если используется QCanvas, то они рисуется на QCanvasView! Если рисуется на QScrollView, то рисовать нужно на viewport-е ....
Название: Re: Почему не рисует?
Отправлено: alex12 от Ноябрь 29, 2007, 11:29
Меня смущает: wImage = new QWidget(this->viewport(),0, Qt::WNoAutoErase); Может не надо давать в качестве parent'а viewport()? Все равно же следующей командой он ставится как новый viewport, а старый уничтожантся...
|