QGraphicsBlurEffect调整Text的大小,但不调整Widget本身的大小

时间:2016-01-18 20:14:53

标签: c++ macos qt blur qt5.5

我正在尝试在我的项目中使用Qt 5.5.1 QGraphicsBlurEffect,但无法在Mac上使用它:

screenshot on mac

我尝试使用PerformanceHintQualityHintAnimationHint进行更改,但未成功。使用QGraphicsColorizeEffect我遇到了同样的问题,而QGraphicsOpacityEffectQGraphicsDropShadowEffect以及Linux上的所有内容都完美无缺:

enter image description here

如何更改项目文件或代码以使图形问题消失?它甚至可能吗?

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 个答案:

答案 0 :(得分:1)

QGraphicsOpacityEffect我遇到了类似的问题:模糊文字和图标必须清晰锐利。好像是Qt中的一个错误。我的解决方案是编写我自己的小类,其中包含我需要的所有内容以及正确的渲染。 好吧,你可以尝试修复Qt ...祝你好运阅读图形效果的源代码。所有它的dpr和转换矩阵以及渲染子窗口小部件都非常复杂。