[Solved] Using variables in style sheets qss
-
wrote on 5 Jun 2012, 06:42 last edited by
Is there anyway that we can define a hex/rgb numbers to a variable and use them in our stylesheet(.qss) file . For eg
@myColor = #DFDFE0
QPushButton { background-color: myColor; }@This is required as there are many components in .qss file where i need to use the same hex value for color. So I was thinking that at the top of the stylesheet file i can define all the variable and use them as required. Also if i need to change the color then i have to change at one place and that will be reflected for all the components.
Thanks
-
wrote on 5 Jun 2012, 09:41 last edited by
I dont think stylesheets have support for that.
you can group rules together, not sure about the exact syntaxQPushButton QLabel QWidget { background-color: #DFDFE0 }
-
wrote on 5 Jun 2012, 10:10 last edited by
You can use a text template for the style sheet, create the actual stylesheet as a combination of the template and a theme and set it. See Grantlee for string templating. I did something similar, used just basic string replacement and it works fine.
-
wrote on 5 Jun 2012, 12:06 last edited by
Can you give some examples about how can i use this in stylesheets(.qss) file , that will be really helpful. I have gone through the "documentation":http://www.grantlee.org/apidox/for_themers.html but couldn't understand much about how to use it.
Thanks for your time.
-
wrote on 5 Jun 2012, 14:19 last edited by
I'd suggest looking at the book example or the unit tests in the grantlee repository. I think the books example is the most complete small example.
-
wrote on 5 Jun 2012, 14:22 last edited by
[quote author="stephen" date="1338905990"]I'd suggest looking at the book example or the unit tests in the grantlee repository. I think the books example is the most complete small example.[/quote]
Thanks, Stephen!
-
wrote on 5 Jun 2012, 15:47 last edited by
can you post i little code example using it in a qt application because i need it to
-
wrote on 6 Jun 2012, 10:07 last edited by
I am trying to run the book example provided in "Grantlee repository":http://gitorious.org/grantlee.
Dont know where i am going wrong, whenever i run the project i get the following errors@13:52:01: Running build steps for project books...
13:52:01: Configuration unchanged, skipping qmake step.
13:52:01: Starting: "C:\QtSDK\QtCreator\bin\jom.exe"
c:\qtsdk\desktop\qt\4.8.0\msvc2010\bin\qmake.exe -spec ......\QtSDK\Desktop\Qt\4.8.0\msvc2010\mkspecs\win32-msvc2010 CONFIG+=declarative_debug -o Makefile ..\books\books.pro
C:\QtSDK\QtCreator\bin\jom.exe -nologo -j 4 -f Makefile.Debugjom 1.0.6 - empower your cores
Error: dependent 'debug\bookwindow.moc' does not exist.
command failed with exit code 2
13:52:02: The process "C:\QtSDK\QtCreator\bin\jom.exe" exited with code 2.
Error while building project books (target: Desktop)
When executing build step 'Make'@What steps should i follow to make this working.
Thanks. -
wrote on 12 Jul 2012, 06:28 last edited by
I tried but still couldn't get this working.
-
wrote on 12 Jul 2012, 07:54 last edited by
You do not need a full-blown template library just to replace some text. If this fits your needs doing a simple QString::replace() does the trick as well.
@
QPushButton { background-color: myColor; }QString styleSheet = ...;
styleSheet.replace("myColor", "#DFDFE0");
styleSheet.replace(...);
@See also "this":http://qt-project.org/forums/viewthread/18686/ thread.
-
wrote on 12 Jul 2012, 07:56 last edited by
[quote author="pritamghanghas" date="1338889298"]I dont think stylesheets have support for that.
you can group rules together, not sure about the exact syntaxQPushButton QLabel QWidget { background-color: #DFDFE0 }[/quote]
I just want to mention that this does not do what you expect it to do.If you want to group several selectors you will have to use commas. <code>QPushButton, QLabel, QWidget { background-color: #DFDFE0 }</code>
Without commas, you are doing a descendant selection.
-
wrote on 28 Aug 2012, 06:46 last edited by
Thanks for the help,
For the implementation we created a parser that would parse the css file with the user defined variable and replace the variable with the actual color code.
Regards
Soumitra.