一般情况下,在QtCreator之中,打开ui设计器栏目,就可以在控件属性编辑器里的stylesheet下设置样式。
但是这里有个问题,那就是我们无法针对个别细节进行直接设置,譬如按钮的圆角,按钮的边距,padding等属性。 尤其是某些复合型控件,像QTableWidget,QTabWidget之类的,复合了其他控件,就更加无法设置样式表了。 鉴于Qt自带的控件样式设置比较简单,无法满足我们的需求,有开发者就自己开发了一个Qss样式设置器,可见即可得,虽然功能比不上Dreamweaver,也比不上某些css设置软件,但好在够直观,开源免费,并且小巧,几兆的大小。
使用起来也比较方便,我们可以在网上download一些现成的qss文件,譬如Git上经常会用到的那些。我已经放到网盘中,大家可以在底下看到,如果找不到,也可以私信我发给你。 如上图,我直接在左侧的qss编辑器中编写某个控件的qss语句,这里是QPushButton,无须保存,即可直接在右侧控件栏中看到编写的控件的样式了。基本上涵盖了QtCreator上的所有控件了。 对于我们自己使用来说,如果像上面那样一个一个地编辑,效率比较低。而且我们不是美工设计人员,对调色配色,界面美观的理解感知比较粗浅,所以,我们需要的是丰富的主题模板。
也就是可以直接使用的qss文件,如上面图片中展示的那样,只要切换qss样式,就可以更换软件外观了。 这里我一并分享给大家了。 这里贴出部分代码:其他的大家可以自己去编辑。
/*-----QWidget-----*/ QWidget { background-color: qlineargradient(spread:repeat, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(102, 115, 140, 255),stop:1 rgba(56, 63, 77, 255)); color: #ffffff; border-color: #051a39; } /*-----QLabel-----*/ QLabel { background-color: transparent; color: #ffffff; font-weight: bold; } QLabel::disabled { background-color: transparent; color: #898988; } /*-----QMenuBar-----*/ QMenuBar { background-color: #484c58; color: #ffffff; border-color: #051a39; font-weight: bold; } QMenuBar::disabled { background-color: #404040; color: #898988; border-color: #051a39; } QMenuBar::item { background-color: transparent; } QMenuBar::item:selected { background-color: #c4c5c3; color: #000000; border: 1px solid #000000; } QMenuBar::item:pressed { background-color: #979796; border: 1px solid #000; margin-bottom: -1px; padding-bottom: 1px; } /*-----QMenu-----*/ QMenu { background-color: #c4c5c3; border: 1px solid; color: #000000; font-weight: bold; } QMenu::separator { height: 1px; background-color: #363942; color: #ffffff; padding-left: 4px; margin-left: 10px; margin-right: 5px; } QMenu::item { min-width : 150px; padding: 3px 20px 3px 20px; } QMenu::item:selected { background-color: #363942; color: #ffffff; } QMenu::item:disabled { color: #898988; } |
好了,这期就分享到这里。上面的几种qss编辑方式虽然日常使用挺不错,但是还是缺乏可操作性。 既然,QtDesigner是开源的,我们为什么不能直接修改QtDesigner源码,将属性编辑器修改为我们想要的功能呢?答案自然是可以的。 下一期,我们看看如何添加更多的控件属性到QtDesigner源码之中,完成目标中的qss编辑器。记得持续关注,不见不散哦。
|