QGraphicsBlurEffect изменяет размер текста, но не самого виджета

Я пытаюсь использовать Qt 5.5.1 QGraphicsBlurEffect в моем проекте, но не могу заставить его работать на Mac:

скриншот на Mac

Я пытался внести изменения, используя PerformanceHint, QualityHint или же AnimationHint, но не удалось. С помощью QGraphicsColorizeEffect У меня была такая же проблема, пока QGraphicsOpacityEffect а также QGraphicsDropShadowEffect, а также все на Linux работало отлично:

введите описание изображения здесь

Как я могу изменить файл или код моего проекта, чтобы устранить эту проблему с графикой? Это вообще возможно?

TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp

#include <QtWidgets>

int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow window;

QTextEdit *text = new QTextEdit;
text->setReadOnly(true);

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(text);

QWidget *widget = new QWidget;
widget->setLayout(layout);

QGraphicsBlurEffect effect;
effect.setBlurRadius(3);

QLabel *test = new QLabel("TEST");
test->setGraphicsEffect(&effect);
(new QHBoxLayout(text))->addWidget(test, 0, Qt::AlignCenter);

window.setCentralWidget(widget);
window.show();
return app.exec();
}

1

Решение

У меня была похожая проблема с QGraphicsOpacityEffect: размытый текст и значки, если они должны быть четкими. Похоже, ошибка в Qt. Моим решением было написать собственный небольшой класс, содержащий все, что мне нужно, с правильным рендерингом.
Ну, вы можете попытаться исправить Qt … удачи в чтении исходного кода графических эффектов. Это довольно сложно со всей его dpr и матрицей преобразования и рендерингом дочерних виджетов.

1

Другие решения

Других решений пока нет …