Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QGraphicsView + Qt::WA_TranslucentBackground


Автор: pulsar314 21.3.2011, 12:38
Доброго времени.

Возникла такая проблемка: написал я небольшую QGraphicsScene (точнее скопипастил  smile ) и воплотил ее в графическое представление. Для пущего эффекта решил фон сделать прозрачным и убрать всяческое декорирование окна. Все вроде работает, но есть одно но: рамка (border) окна осталась видимой...

Код

class View : public QGraphicsView
{
public:
    View(QGraphicsScene *scene) : QGraphicsView(scene) { }

protected:
    void resizeEvent(QResizeEvent *event)
    {
        QGraphicsView::resizeEvent(event);
        fitInView(sceneRect(), Qt::KeepAspectRatio);
    }
};

    ...

    QWidget wnd;
    wnd.setAttribute(Qt::WA_TranslucentBackground);
    wnd.setAutoFillBackground(false);
    wnd.setWindowFlags( Qt::FramelessWindowHint);

    ...

    View *view = new View(&scene);
    view->setAutoFillBackground( false);
    view->setWindowFlags( Qt::FramelessWindowHint);
    view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
    view->setViewport( &wnd);
    view->setAttribute(Qt::WA_TranslucentBackground);
    view->show();


Все мои попытки исправить этот неприятный факт не увенчались успехом.
Прошу помощи у более опытных пользователей в избавлении от этой проблемки.

Мое ПО: Qt 4.6.1, Ubuntu 10.04

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)