Qt如何设置界面风格

 我来答
岱岳妃74
2017-11-01 · 知道合伙人互联网行家
岱岳妃74
知道合伙人互联网行家
采纳数:6781 获赞数:6569
毕业于计算机网络技术推广,对互联网用着深刻的了解和研究,希望运用我所学的知道来帮助更多 的人。

向TA提问 私信TA
展开全部

设置方法:

每个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的东西

子widget也会被修改

可以对整个app应用一个样式,然后对某个控件指定某个样式

这是一个优先级别最高的样式配置,会覆盖QStyle,或者说包装QStyle

QStyle和qss的区别

QStyle是可以重写画控件的,你可以重新设置画刷画线,当然也你可以只是设置背景颜色。例如,checkbox,原来是打钩的,现在改成深色

qss 改的相对表面一点,修改背景颜色 背景图片什么的

一个改骨头一个改皮

可在QtDesigner里更改样式表

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式