crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> [РЕШЕНО] opengl scene & qwidgets problem
padla
  опции профиля:
сообщение 25.1.2010, 20:00
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 17.11.2008
Пользователь №: 424

Спасибо сказали: 0 раз(а)




Репутация:   0  


делаю все как в тут в итоге виджет отображается либо так:
Прикрепленное изображение

либо так:
Прикрепленное изображение

при чем отчего зависит не могу разобраться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
padla
  опции профиля:
сообщение 26.1.2010, 10:32
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 17.11.2008
Пользователь №: 424

Спасибо сказали: 0 раз(а)




Репутация:   0  


widget.h
Раскрывающийся текст
/*
*    controllTacticWindow.h
*/

#ifndef _CONTROLLTACTICWINDOW_H_
#define _CONTROLLTACTICWINDOW_H_
#include <QtGui>

namespace TacticalConditions {
    class ControlTacticalWindow : public QWidget {
        Q_OBJECT
        public:
            ControlTacticalWindow();

    };
}

#endif// _CONTROLLTACTICWINDOW_H_


widget.cpp
Раскрывающийся текст
/*
* controllTacticWindow.cpp
*/

#include "controltacticalwindow.h"

namespace TacticalConditions {
    ControlTacticalWindow::ControlTacticalWindow() : QWidget(0, Qt::CustomizeWindowHint | Qt::WindowTitleHint) {
        setWindowTitle(tr("Items (double click to flip)"));
        setWindowOpacity(0.8);

        QVBoxLayout *layout = new QVBoxLayout;
        setLayout(layout);
        QPushButton *button;

        button = new QPushButton(QIcon(QString::fromUtf8(":/images/images/up.png")), tr(""));
        layout->addWidget(button);

        button = new QPushButton(tr("Add circle"));
        layout->addWidget(button);

        button = new QPushButton(tr("Add square"));
        layout->addWidget(button);

        layout->addStretch(1);
    }
}


Так он (виджет) добавляется на опенгл сцену:
Раскрывающийся текст
    TacticalWindow::TacticalWindow(QWidget * parent) : QGraphicsView(parent) {
        setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
        setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
        OpenGLScene *scene = new OpenGLScene;
        setScene(scene);
        scene->addWidget(new ControlTacticalWindow());
               ......


Отрисовка заднего фона:
Раскрывающийся текст
    void OpenGLScene::drawBackground(QPainter *painter, const QRectF &) {
        if (painter->paintEngine()->type()
                != QPaintEngine::OpenGL) {
            qWarning("OpenGLScene: drawBackground needs a "
                     "QGLWidget to be set as viewport on the "
                     "graphics view");
            return;
        }
        glDrawPixels(m_image.width(), m_image.height(), GL_RGBA, GL_UNSIGNED_BYTE, m_image.bits());
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 17:07