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里更改樣式表





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM