zoukankan      html  css  js  c++  java
  • Qt界面风格设置

    • 每个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里更改样式表




  • 相关阅读:
    探索Java8:(二)Function接口的使用
    Vue 动态图片加载路径问题和解决方法
    小工具:使用Python自动生成MD风格链接
    解决Navicat Premium 12 连接oracle数据库出现ORA-28547的问题
    Beetl模板引擎入门教程
    JSON.stringify()的深度使用
    nvm 查看node版本
    去掉点击a标签时产生的虚线框
    html 设置input框的记忆功能(联想内容)
    php post和get请求
  • 原文地址:https://www.cnblogs.com/dongdongweiwu/p/4743698.html
Copyright © 2011-2022 走看看