why program is so laggy after using QGraphicsDropShadowEffect
-
Hi here is my code
QTGui::QTGui(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->btn_close, &QPushButton::clicked, this, &QWidget::close); connect(ui->btn_minimize, &QPushButton::clicked, this, &QWidget::showMinimized); connect(ui->btn_maximize_restore, &QPushButton::clicked, this, &QTGui::maximize_restore); QGraphicsDropShadowEffect* windowShadow = new QGraphicsDropShadowEffect; windowShadow->setBlurRadius(9.0); windowShadow->setColor(palette().color(QPalette::Highlight)); windowShadow->setOffset(0.0); ui->frame_main->setGraphicsEffect(windowShadow); ui->frame_label_top_btns->installEventFilter(this); }
I dont know why, but my program become so laggy after using
QGraphicsDropShadowEffect
can anyone tell me what is my problem?
thanks -
@saeid0034 confirm that behaviour is due to QGraphicsDropShadowEffect by disabling the graphics effect.
ui->frame_main->graphicsEffect()->setEnabled(false);
https://doc.qt.io/archives/qt-4.8/qgraphicseffect.html#enabled-prop
//Using this property, you can disable certain effects on slow platforms, in order to ensure that the user interface is responsive.As per Qt docs
Effects alter the appearance of elements by hooking into the rendering pipeline and operating between the source (e.g., a QGraphicsPixmapItem) and the destination device (e.g., QGraphicsView's viewport).
-
yes, I tested it, when I disabled
QGraphicsDropShadowEffect
program work normally (its no longer laggy or slow). what can I do to use shadow in my program widget without any performance issues?
I created a frameless window and I want to use shadow for it -
@saeid0034
Hi
sadly i dont think its fixable as QGraphicsDropShadowEffect must be too heavy
for your device to handle then. -
So the lag comes at normal pc ? not a small device ?
-
Ok ?! What kind of PC are we talking about ?
I mean CPU, amount of ram and GFX card.Did you try a default GUI project with the effect only to see ?
I mean so app really does nothing and just has this effect.
To see if that also lags. -
I have experienced this slow down as well on a PC ..
Processor 11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2.50 GHz
Installed RAM 32.0 GB (31.6 GB usable)My current approach is not using the drop shadow effect...(which I would like)
-
I'm seeing the same issue in a small game running PySide6 on an apple M1 Macbook Pro. 200-300 FPS without drop shadow effect enabled, and 30FPS with. One solution for my use case may be to bake the effect into an image asset and draw that instead. I don't need the functionality of the QGraphicsDropShadowEffect during runtime, just the look.