qss中使用自定義屬性 property

2021-07-14 21:19:41 字數 1577 閱讀 6858

q_property(type name read getfunction [write setfunction] [reset resetfunction] [notify notifysignal] [designable 

bool

] [scriptable 

bool

] [stored 

bool

] [user 

bool

] [constant] [final])

1.必須有乙個read 函式。它用來讀取屬性值。因此用const限定。它的返回值型別必須為屬性型別或者屬性型別的引用或者指標。不能是其他型別例如:qwidget::hasfocus().  

2.有乙個可選的write 函式。它用來設定屬性值,它的返回值必須為void型,而起必須要含有乙個引數。例如:qwidget::setenabled()

3.乙個reset 函式能夠把property設定成其預設狀態,它也是可選的。復位功能必須返回void,並且不帶引數,

4.乙個notify訊號是可選的 。如果定義,它提供了乙個訊號這個訊號在值發生改變時會自動被觸發。

5.如果定義了"stode"屬性表明這是一直存在的。qwidget::minimumsize()

6.乙個"designable"屬性表明該property能在gui builder(一般為qt designer)可見

7.user 屬性 表面是否可以被使用者所編輯

8 const設定屬性是不可修改的 所以不能跟write或者notify同時出現

9final表明該屬性不會被派生類中重寫

模版:

q_object    

q_property(qcolor normalcolor read normalcolor write setnormalcolor designable true)    

public:    

explicit styledwidget(qwidget *parent = 

0);  

~styledwidget();    

qcolor normalcolor() const;    

void setnormalcolor(qcolor color);

qss中使用自定義的屬性設定對應的樣式:

styledwidget

目前get,set測試通過。但是,當自定義屬性的控制項的qss修改之後,自定義屬性需要自動還原為預設值時,沒有呼叫reset函式。哪位知道請賜教。

QSS自定義元件

學習qss,自定義元件 設定正常狀態下 qpushbutton login 設定滑鼠滑進按鈕 qpushbutton hover login 設定按鈕按下 注意事項 在設定border的時候一定要將引數設定完整。border 0.5px solid black 引數一 border的寬度 即粗細 引...

自定義屬性使用

步驟1.在values檔案下,建立attrs.xml 檔名可換 2.在布局xml檔案中書寫命名空間,使用自定義屬性 3.在自定義view中獲取屬性的配置值,進行使用 name mytoggleview name slide background format reference name toggl...

Android 使用自定義元件和自定義屬性

使用場合 當使用者使用自定義的view元件時,需要指定屬性。例如要實現乙個預設的帶動畫效果的,顯示時自動從全透明變成完全不透明 需要新增乙個持續的事件 存放位置 res values attrs.xml 定義這樣乙個imageview public class alphaimageview exte...