Я пытаюсь использовать Qt 5.5.1 QGraphicsBlurEffect
в моем проекте, но не могу заставить его работать на 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();
}
У меня была похожая проблема с QGraphicsOpacityEffect
: размытый текст и значки, если они должны быть четкими. Похоже, ошибка в Qt. Моим решением было написать собственный небольшой класс, содержащий все, что мне нужно, с правильным рендерингом.
Ну, вы можете попытаться исправить Qt … удачи в чтении исходного кода графических эффектов. Это довольно сложно со всей его dpr и матрицей преобразования и рендерингом дочерних виджетов.
Других решений пока нет …