Search code examples
c++qtqt5qtstylesheets

QT5: Unable to set stylesheet properties using qss file


I'm currently working on an app and I'm unable to set global stylesheet. Here's the code I've been trying:

QFile file(":/dark.qss");
        file.open(QFile::ReadOnly | QFile::Text);
        QTextStream stream(&file);
        qApp->setStyleSheet(stream.readAll()); '''

and

 QFile f(":/dark.qss");

if (!f.exists())   {
    printf("Unable to set stylesheet, file not found\n");
}
else   {
    f.open(QFile::ReadOnly | QFile::Text);
    QTextStream ts(&f);
    qApp->setStyleSheet(ts.readAll());
}

For the first one I'm getting : QIODevice::read \dark.qss device not open

and for the second one Unable to set stylesheet, file not found

The second one used to work fine 2 weeks ago (build with msys2, mingw64, qt5.14.1.3), unfortunately, I had to reinstall mysys2 and since then this is not working anymore.

I tried to build using msys2 with all the packages I used 2 weeks ago (had to downgrade about 80 packages manually ) also straight from qt creator with no luck.

Any idea what might be the problem?


Solution

  • The issue has nothing to do with msys. The most obvious reason is an incorrect project setup. Please make sure dark.qss is added into the resource (qrc) file under "/" prefix and the qrc file is added into RESOURCES in the pro file.

    Also, there is a bug in qmake not adding newly added resources into the app sometimes. A full rebuild might help in this situation.

    It would be great if you paste both the qrc and pro file here. A full build log could be very helpful as well.