Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QGraphicsScene и Release
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
gmurik2
Добрый день!

Столкнулся с проблемой, при компиляции в режиме Release сцена в QGraphicsView отображается некорректно, вместо кнопок на белом фоне, отображается кусок белого фона. А в Debug режиме все нормально работает. Кто знает в чем может быть проблема?

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QTextCodec *codec = QTextCodec::codecForName("CP1251");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);

    menu = new MainMenu(this);
    
    ui->graphicsView->setScene(menu);
    ui->graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
    ui->graphicsView->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
    ui->graphicsView->installEventFilter(this);
}

#include <QGraphicsScene>
#include <QGraphicsProxyWidget>
#include <QPushButton>


class MainMenu : public QGraphicsScene
{
    Q_OBJECT
public:
    explicit MainMenu(QObject *parent = 0);


signals:
  


public slots:
    

private:
    QGraphicsProxyWidget *proxy;
    QPushButton *propertyButton;
    QPushButton *helpButton;
    QPushButton *quitButton;
};

MainMenu::MainMenu(QObject *parent) :
    QGraphicsScene(parent)
{

    propertyButton = new QPushButton(tr("Настройки"), 0);
    helpButton = new QPushButton(tr("Помощь"), 0);
    quitButton = new QPushButton(tr("Выход"), 0);
    proxy = addWidget(propertyButton);
    QTransform  transform = proxy->transform();
    transform.translate(0. ,-30.);
    proxy->setTransform(transform);
    proxy = addWidget(helpButton);
    proxy = addWidget(quitButton);
    transform = proxy->transform();
    transform.translate(0. ,30.);
    proxy->setTransform(transform);

}

Rocky
У меня работает. Единственно, я заменил
ui->graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));

на
ui.graphicsView->setViewport(new QWidget());

т.к. у меня не установлен opengl.. А так все работает, и в релизе и в дебаге. кьют 4.7.1
gmurik2
Вопрос снимается, видимо какая-то ошибка компиляции(gcc 4.5), удаление исполняемого файла и повторная компиляция решили проблему. Спасибо за участие!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.