Unsolved 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 -
I still have this problem, no matter what i do, when Im using shadow its make my program laggy...
there is any fix?? -
@saeid0034
Hi
sadly i dont think its fixable as QGraphicsDropShadowEffect must be too heavy
for your device to handle then. -
@mrjj I tested it in other pc too, but result was the same, in fact program doesn't use much of resource at all
-
So the lag comes at normal pc ? not a small device ?
-
@mrjj yes exactly, program running in pc
-
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. -
@mrjj with program open: a custom progress bar and shadow program use this much of resource
as You can see its not using much of resource at all (except power usage... maybe its because progress bar, its on IndeterminateProgress mode...) -
its also much less in release build (previous one was debug)
-
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.