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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблеммы с рисованием на окне QGLWidget в Qt4  (Прочитано 2966 раз)
Алекс17
Гость
« : Июль 07, 2006, 10:22 »

Здравствуйте,

Мне нужно отрисовывать прямоугольник на окне QGLWidget для селектирования регионом. К окну QGLWidget подключен 3D Viewer из OpenCASCADE. Прблемма в том, что когда я рисую прямоугольник с помощью QPainter, поверх вьювера появляется фон Widget и затирает вьювер. В Qt3 таких проблемм не было, я использовал для вьювера обычный QWidget и все работало. А в Qt4 обычный QWidget все время при изменении размера окна затирает своим фоном вьювер. QGLWidget в этом смысле работает нормально. Но рисовать прямоугольник не получается. Как решить эту проблемму?

Код у меня примерно такой:

    Q3VBox* vb = new Q3VBox( this);
    vb->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
    myView = new View(vb);

    ..............

    View::View(QWidget* parent) : QGLWidget( parent)
    {
     int windowHandle = (int) winId();
     short hi, lo;
     lo = (short) windowHandle;
     hi = (short) (windowHandle >> 16);
     Handle(WNT_Window) hWnd = new WNT_Window(Handle(Graphic3d_WNTGraphicDevice)::DownCast(myContext->CurrentViewer()->Device()),(int) hi,(int) lo);
     myView->SetWindow( hWnd );
     ..........
    }

    void View::DrawRectangle(const int MinX, const int MinY, const int MaxX, const int MaxY)
    {
       QPainter thePainter(this);
       thePainter.setPen(Qt::white);
       QRect aRect;
       aRect.setRect( MinX, MinY, Maxx, Maxy);
       thePainter.drawRect(aRect);
    }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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