返回目录:office365
设置方法:
类的继承关系:
QMotifStyle:OSF(开放基金协会)开发的一个工业标准的GUI(图形zhidao用户接口);
QCDEStyle:公共桌面环境(Common Desktop Environment)的缩写,CDE是一种运行于UNIX/AIX,基于Motif部件工具箱开发的桌面环境,惠普的OpenVMS、IBM的AIX等都采用CDE作为标准的桌面环境;
QS60Style:Series 60(简称S60)界面是诺基亚Symbian系统智能手机界面;版
QGtkStyle:GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包,GNOME、XFCE等桌面环境和大部分窗口管理器都基于GTK+;
QMacStyle:苹果操作系统的界面风格;权
QPlastiqueStyle:KDE桌面环境的界面风格;
QWindowsXPStyle和QWindowVistaStyle:分别是Windows XP和Windows Vista操作系统的界面风格;
示例:
在main函数中添加:
QApplication::setStyle(new QMotifStyle);
设置方法:
每个widget都可以设置风格
setStyle(QStyle style)
对QApplication设置QStyle即对所有
QApplication::setStyle(QStyleFactory::create("Fusion"));
其他widget如过没有被设置QStyle,默认使用QApplication的
QStyle主要可重写接口
绘制复杂控件
virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex * option, QPainter * painter, const QWidget * widget = 0) const = 0
绘制一般控件
virtual void drawControl(ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
绘制最基础的控件(小箭头什么的)
virtual void drawPrimitive(PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
所有这些接口的参数都类似
第一个为QStyle类中定义的枚举值,具体参考Qt文档,表示你要修改的控件类型
后面几个顾名思义好了
获得当前平台支持的原有的QStyle
也可以对每个widget定制风格
QWidget::setStyle()
修改自定义widget的显示效果
QWidget有style()接口获得当前QStyle
自定义QStyle
可以重写已有的QStyle稍微修改下
也可以继承一个,一般继承于QProxyStyle,或者QCommonStyle
将自定义的style做成插件供其他人使用
Qt style sheet qss的使用
使用.qss 文件
如果一个Qt style sheet被激活,则它会对widget的style进行封装
这是一个类似css的东e799bee5baa6e997aee7ad94e4b893e5b19e364西
子widget也会被修改
可以对整个app应用一个样式,然后对某个控件指定某个样式
这是一个优先级别最高的样式配置,会覆盖QStyle,或者说包装QStyle
QStyle和qss的区别
QStyle是可以重写画控件的,你可以重新设置画刷画线,当然也你可以只是设置背景颜色。例如,checkbox,原来是打钩的,现在改成深色
qss 改的相对表面一点,修改背景颜色 背景图片什么的
一个改骨头一个改皮
可在QtDesigner里更改样式表
这个一般人都会靠重载控件的paint函数来做.让按钮背景透明,失去按钮原来方方正正的边框然后在上面贴一个好看的按钮图片.相应按钮不同状态做不同的处理.(比如按下的时候让按钮颜色表按之类的)但是工作量,就是一个大啊.重载一两个控件还行.
Qt里面还可以用(视图,场景,模型)QGraphicsView,QGraphicsIitem.等等这一系列的类来开发不规则控件.用起来比较灵活.听说Qt Demo 就是用这个框架来开发的.
一个书上说比较好用的方法就是用QStyle来写界面的风格,不过对个人能力e799bee5baa6e4b893e5b19e331的要求还是比较搞的.搞过一两次,觉得是挺好用.比起上两个来说工作量小很多.但是要了解QStyle的用法....老实说这个东西实在很难.
另外你还可以用qss来搞.一种Qt中使用的css,虽然官方一直说是参考css搞出来的东西.但我怎么看都是一个样....
用代码搞了那么久的Qt界面美化.一直到qml出现了.我爱死他了.如果你一定要搞的话我建议你用qml来搞.那就是一个给力.就是有一点,现在qml的资料少得可怜...
最后.如果你是初学者的话最好不要去硬搞界面美化这一块....很伤的...到后面你会慢慢明白搞界面美化不是一个人可以做的事.你至少需要一个美工吧....呵呵呵呵....上述一切均为个人意见.仅供参考.....
在Qt目录Bin文件夹内有个叫做Qt Designer的软件,你打开便知