Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stylesheet Performance Hits with Qt

I would like to know if it's possible to load stylesheets a lot faster than using my method in a Qt app.

Here my codes:

this->setStyleSheet("background-color : black;");

Took 270 ms to execute this simple css/qss styling.

With a lot bigger qss styling using this import method

QFile file("style.qss");  
if(!file.open(QFile::ReadOnly)){  
    qDebug() << "Style QSS file not found";  
}  
css = QString::fromLatin1(file.readAll());  
file.close(); 

this command

this->setStyleSheet(css);

took 330ms so it's not that bad considering the difference of css styling blocks executed.

So it looks like the init of the setStyleShet command is very long. My question is: Is there a way of speeding up this command (by not using Qstring, other import methods,....) or by threading ?

For me it's huge because I need to update often my stylesheets and it's taking as much time as all my logic executed.

Thanks. Have a nice day :)

like image 460
Pico Avatar asked Aug 12 '13 12:08

Pico


1 Answers

Found this method :

this->style()->unpolish(this); //"this" is my main window
this->style()->polish(this);
this->update();

instead of :

this->setStyleSheet(css);

It's incredibly fast ! (0-1 ms vs 150-200ms)

Solution was there: http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html#note-233

like image 110
Pico Avatar answered Sep 20 '22 01:09

Pico