crossplatform.ru

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

2 страниц V   1 2 >  
Тема закрытаНачать новую тему
> [РЕШЕНО] opengl scene & qwidgets problem
padla
  опции профиля:
сообщение 25.1.2010, 20:00
Сообщение #1


Студент
*

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

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




Репутация:   0  


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

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

при чем отчего зависит не могу разобраться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 25.1.2010, 21:01
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


У тебя явно что-то с рисованием или перерисовкой виджетов, проверь еще раз все внимательно...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
padla
  опции профиля:
сообщение 25.1.2010, 21:08
Сообщение #3


Студент
*

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

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




Репутация:   0  


да вроде все проверял. причем это проявляется хаотично. то есть запускаешь закрываешь приложение виджет отрисовывается либо так либо эдак.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 25.1.2010, 21:36
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Ну значит, выкладывай исходник, как я понимаю он небольшой... :)

оформи его в тег expand

исходник твоего приложения

тут исходник

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
padla
  опции профиля:
сообщение 26.1.2010, 10:32
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 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());
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
padla
  опции профиля:
сообщение 27.1.2010, 21:45
Сообщение #6


Студент
*

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

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




Репутация:   0  


Скомпилил этот пример запускаю и вижу тоже самое:
Прикрепленное изображение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.1.2010, 21:46
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


padla, а какая у тебя видео-карта, как-то троли говорили, что не все видеокарты нормально работают
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
padla
  опции профиля:
сообщение 27.1.2010, 21:59
Сообщение #8


Студент
*

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

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




Репутация:   0  


Видео карта NVIDIA GeForce 9400 GT.
qt 4.5.1.
Alt Linux 4.1.
Возможно все это из-за драйверов на видео.
На винде кстати работает без проблем.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
padla
  опции профиля:
сообщение 27.1.2010, 22:41
Сообщение #9


Студент
*

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

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




Репутация:   0  


Так и есть проблема была в драйвере.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.1.2010, 22:44
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


padla, можно отметить [РЕШЕНО] ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Тема закрытаНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 29.3.2024, 0:37