Portál AbcLinuxu, 2. června 2024 15:06
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.
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.