Russian Qt Forum
Ноябрь 25, 2024, 09:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему не рисует?  (Прочитано 3482 раз)
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();
}
Записан
Martiro
Гость
« Ответ #1 : Ноябрь 29, 2007, 09:10 »

Давил отрисовку в paintEvent, но результата никакого...
Записан
BaltikS
Гость
« Ответ #2 : Ноябрь 29, 2007, 10:40 »

Честно говоря, не фига не понятно.... Причём тут QScrollView и QCanvas? Если используется QCanvas, то они рисуется на QCanvasView! Если рисуется на QScrollView, то рисовать нужно на viewport-е ....
Записан
alex12
Гость
« Ответ #3 : Ноябрь 29, 2007, 11:29 »

Меня смущает:
Код:
wImage = new QWidget(this->viewport(),0, Qt::WNoAutoErase);
Может не надо давать в качестве parent'а viewport()? Все равно же следующей
командой он ставится как новый viewport, а старый уничтожантся...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 21.