crossplatform.ru

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


  Ответ в QGraphicsScene и Release
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
gmurik2 Дата 13.12.2010, 13:48
  Вопрос снимается, видимо какая-то ошибка компиляции(gcc 4.5), удаление исполняемого файла и повторная компиляция решили проблему. Спасибо за участие!
Rocky Дата 13.12.2010, 12:33
  У меня работает. Единственно, я заменил
ui->graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));

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

т.к. у меня не установлен opengl.. А так все работает, и в релизе и в дебаге. кьют 4.7.1
gmurik2 Дата 13.12.2010, 11:07
  Добрый день!

Столкнулся с проблемой, при компиляции в режиме 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);

}

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 4:37