屬性是指窗口或控件的屬性,比如opacity屬性表示“透明度”,geometry指的是“位置和大小”,pos屬性代表“位置”。qt中的控件有自帶的屬性,我們也可以自己定義屬性。
QObject這個類有一個函數setProperty,我們可以通過這個函數定義自己的屬性,使用方法很簡單,setProperty(const char * name, const QVariant & value),第一個參數是屬性的名稱,第二個參數是屬性值。
除了上面的方法,還有一種自定義屬性的方法,就是使用Q_PROPERTY這個宏,簡單用法如下:
Q_PROPERTY(type name READ getFunction WRITE setFunction)
Q_PROPERTY(參數類型 參數名稱 READ 獲得屬性值函數 WRITE 設置屬性值函數)
比如Q_PROPERTY(bool bIsDoubi READ getDoubi WRITE setDoubi),屬性類型是bool類型,bIsDoubi是屬性名稱。除此之外還需要寫兩個函數,第一個是設置屬性的函數void setDoui(bool),第二個是獲得屬性的函數bool getDoubi()。
我目前所知的自定義屬性有兩個用途,第一是用于改變樣式,第二是用于動畫,下面分別作解釋。
翻開Qt助手,找到樣式表語法部分,在通過選擇器設置樣式中有一個屬性選擇器,比如QPushButton[flat="false"]意思就是當按鈕屬性flat為false時的樣式。
舉個栗子,我們有個類,名字叫PropertyTest,在界面中有個按鈕,名字叫pushButton_3
1 另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。 本文名稱:Qt中的屬性設置(搜集整理)-創新互聯 瀏覽地址:http://www.yuzhuanjia.cn/article/iidsd.html 其他資訊 |