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