Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: abdulgalimov от Октябрь 27, 2015, 12:20



Название: Проблемы с QGraphicsBlurEffect в устройстве с Retina дисплеем
Отправлено: abdulgalimov от Октябрь 27, 2015, 12:20
Всем привет. Приведу сразу пример кода:
Код:
DrawWidget::DrawWidget(QWidget *parent) : QWidget(parent)
{
    painter = new QPainter;
    //
    this->rect = new QRect(0, 0, 50, 50);
    this->color = new QColor(255, 0, 0, 255);
    this->resize(600, 400);
}
void DrawWidget::addBlur()
{
    QGraphicsBlurEffect* effect = new QGraphicsBlurEffect();
    effect->setBlurRadius(10);
    this->setGraphicsEffect(effect);
}

void DrawWidget::setBounds(QRect* rect) {this->rect = rect;}
void DrawWidget::setColor(QColor* color) {this->color = color;}

void DrawWidget::paintEvent ( QPaintEvent * event )
{
    QWidget::paintEvent(event);
    //
    if (painter->begin(this)) {
        painter->setPen(QPen(Qt::NoPen));
        painter->setBrush(QBrush(*color));
        painter->drawRect(*rect);
        painter->end();
    } else {
        qDebug() << "not begin";
    }
}

И пример его использования в main:
Код:
DrawWidget* draw1 = new DrawWidget(&mainWidget);
draw1->setBounds(new QRect(50, 50, 100, 100));
draw1->addBlur();
//
DrawWidget* draw2 = new DrawWidget(&mainWidget);
draw2->setBounds(new QRect(50, 50, 100, 100));
draw2->setColor(new QColor(255, 255, 0, 255));

Вот как выглядит результат на обычном мониторе:
(http://take.ms/V7SH9)

А вот как выглядит на мониторе с retina дисплеем, в частности на моем MacBook и iPhone 6:
(http://take.ms/HPh2e)

Кто знает почему так происходит?
Спасибо.


Название: Re: Проблемы с QGraphicsBlurEffect в устройстве с Retina дисплеем
Отправлено: Swa от Октябрь 27, 2015, 12:56
Посмотрите вот тут, может найдете что полезное.  http://blog.qt.io/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/ (http://blog.qt.io/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/)