Using qrc/qss files with Qt WASM
-
wrote on 9 Jun 2020, 16:32 last edited by
Hi all,
I have a question regarding Qt WASM. I would like to change between different style sheets during run time in a WASM application. In the desktop version of my application I just use QFile to access the .qss file included in my .qrc file.
if(QApplication *pApp = qobject_cast<QApplication *>(QApplication::instance())) { QFile file; file.setFileName(":/styles/dark.qss"); file.open(QFile::ReadOnly | QFile::Text); QTextStream stream(&file); pApp->setStyleSheet(stream.readAll()); }
However, under Qt WASM QFile is not supported. Instead one can use QFileDialog::getOpenFileContent to read the complete data as a QByteArray. But this prompts me with a QFileDialog first, which I do not want/need. My question: Is there a way to read from a file included in a .qrc file directly into a QByteArray? I had a look at QResource, but it seems that this class can only be used to read from an external qrc/rcc file during runtime. Any ideas?
Thanks,
Lorenz
-
wrote on 13 Jun 2020, 06:39 last edited by
QFile is supported in webassembly, just not QFileDialog.
using qrc files will also work, but it seems to have issues with paths more than one deep, so using an alias for them will definitely work. -
wrote on 16 Jun 2020, 01:59 last edited by LorenzE
Thanks! The following code, using QFile and a top level path, did indeed work:
QFile file(":/dark.qss"); file.open(QFile::ReadOnly); QTextStream stream(&file); pApp->setStyleSheet(stream.readAll());
2/3