Should I really use a single qss file for my application instead of having one for each (UI) class?

ぃ、小莉子 提交于 2020-01-06 01:32:16

问题


Some posts (namely, these two: Set CSS in QPushButton's subclass's constructor and Does the use of styleSheets in a dynamic manner add a lot of computation) suggest that I should use a single qss file for my Qt application.

However, imagine I have a QLabel subclass whose purpose is (using stylesheets) to provide a particular look/behavior (say BlinkingLabel, however horrendous it would look). In that case, doesn't it make sense to prepare a separate stylesheet and load it in the class constructor? Wouldn't using a global file take away a very useful aspect of using OOP for UI components? Because if I do so, I can no longer just take the class and put it in another project without worrying about anything, because it can take care of itself; I have to remember to copy the relevant stylesheet entries.


回答1:


Common answer: it depends...

From my point of view, if you will split your qss to several files and implement a good logic to load them correctly - it will be better solution in compare with single file. As extra option, you still may have a global qss with basic styles.

First reason, why splitting is better: your qss will be more readable and it will me more easy to provide a support.

Second: smaller qss files, applied on different widgets works a bit faster.

P.S. If you need to reload qss on a widget (as described under your links), you need to call polish() + unpolish() instead of resetting qss text.

P.P.S. don't use stylsheets for animations. There is a QPropertyAnimation class. You can use it to animate color, font, etc. on your widget.



来源:https://stackoverflow.com/questions/32995863/should-i-really-use-a-single-qss-file-for-my-application-instead-of-having-one-f

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!