Portál AbcLinuxu, 29. října 2025 18:19
Dnešný blog bude o tom ako nahradiť qtconfig z Qt4 používaný na nastavenie štýlu Qt aplikácií.
Qt by malo podľa dokumentácie automaticky použiť štýl prostredia, v ktorom je spustené. Problém môžu mať používatelia jednoduchých prostredí, ktoré sa o štýl nestarajú. V takom prípade Qt použije štandardnú tému s (podľa mňa) hnusnoou žltou farebnou schémou.
Detekcia je v súbore src/platformsupport/services/genericunix/qgenericunixservices.cpp. Ak je nastavená premenná prostredia XDG_CURRENT_DESKTOP vráti priamo hodnotu tejto premennej. Ak teda spustím XDG_CURRENT_DESKTOP=gnome designer spustí sa qt designer s GTK témou. Fallback detekciou sa nemusíme ďalej zaoberať. Osobne nemám moc rád GTK témy, takže nastavujem premennú XDG_CURRENT_DESKTOP na hodnotu "kde".
Téma sa dá nastaviť pomocou premennej prostredia QT_STYLE_OVERRIDE, alebo použitím prepínača -style pri každom volaní aplikácie. V prípade, že je XDG_CURRENT_DESKTOP nastavený na "kde" je možné zmeniť tému aj pomocou konfiguračného súboru kdeglobals nachádzajúceho sa v $KDEHOME/share/config/kdeglobals - ukážka
[KDE] widgetStyle=skulpture
Pokročilé nastavenia sú dostupné len pomocou súboru kdeglobals.
Nasledujúce nastavenia farieb číta Qt 5 z kdeglobals:
[Colors:Button] BackgroundNormal=215,220,220 ForegroundNormal=0,0,0 [Colors:Selection] BackgroundNormal=145,177,217 ForegroundNormal=0,0,0 [Colors:Tooltip] BackgroundNormal=255,242,153 ForegroundNormal=64,48,0 [Colors:View] ForegroundNormal=0,0,0 BackgroundNormal=250,250,255 BackgroundAlternate=240,245,255 ForegroundLink=51,81,126 ForegroundVisited=100,74,155 [Colors:Window] BackgroundNormal=210,215,215
Na screenshote je vedľa seba Qt designer skompilovaný s Qt4 a Qt5 po konverzií nastavení.
Tiskni
Sdílej:
Vďaka. Dokumentácia neexistuje, pozeral som akurát na zdrojové kódy a snažil som sa pochopiť čo sa deje pri štarte aplikácie.
Qtcreator a spousta dalsich qt sw jde nastylovat skze toto:
https://doc.qt.io/qt-4.8/stylesheet.html
https://doc.qt.io/qt-4.8/stylesheet-examples.html
https://doc.qt.io/qt-4.8/stylesheet-reference.html
jj předběhl jsi mě ..
Vďaka za info, páči sa mi ako vytvorili vlastný QPlatformTheme, rozhodne sa mi to zdá elegantnejšie riešenie ako tváriť sa, že beží pod KDE ;)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.