Qt界面风格设置

admin 2022年6月27日01:54:10评论69 views字数 1130阅读3分46秒阅读模式
  • 每个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

    • Qt界面风格设置

  • 也可以对每个widget定制风格

    •  QWidget::setStyle()

  • 修改自定义widget的显示效果

    • QWidget有style()接口获得当前QStyle

    • Qt界面风格设置

  • 自定义QStyle

    • 可以重写已有的QStyle稍微修改下

    • 也可以继承一个,一般继承于QProxyStyle,或者QCommonStyle

  • 将自定义的style做成插件供其他人使用

  • Qt style sheet qss的使用

    • 使用.qss 文件

    • 如果一个Qt style sheet被激活,则它会对widget的style进行封装

    • 这是一个类似css的东西

    • 子widget也会被修改

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

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

  • QStyle和qss的区别

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

      • Qt界面风格设置

      • Qt界面风格设置

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

    • 一个改骨头一个改皮

  • 可在QtDesigner里更改样式表


原文始发于微信公众号(汇编语言):Qt界面风格设置

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月27日01:54:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Qt界面风格设置https://cn-sec.com/archives/1145296.html

发表评论

匿名网友 填写信息