欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt?自定義屬性Q_PROPERTY不顯示float類型的解決

 更新時(shí)間:2022年11月10日 15:15:42   作者:在廣州的阿杰  
這篇文章主要介紹了Qt?自定義屬性Q_PROPERTY不顯示float類型的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Qt 自定義屬性Q_PROPERTY不顯示float類型

最近在學(xué)習(xí)編寫自定義控件,其中使用到Q_PROPERTY來(lái)設(shè)置自定義屬性。

查閱資料可以知道,Q_PROPERTY支持的類型可以是QVariant支持的任一類型,又或者是我們自定義的類型,其他是可選的。設(shè)置完之后,會(huì)在調(diào)用自定義控件的時(shí)候,在屬性編輯表里看到我們的屬性。如下圖

但是,今天在使用中發(fā)現(xiàn),少了兩個(gè)自定義屬性min和max,于是查找原因。

后來(lái)發(fā)現(xiàn)屬性表顯示的數(shù)字類型只有兩種:int和double(例如spin box和double spin box),無(wú)法顯示float類型的屬性,所以沒有顯示出來(lái)min和max。

然后在Q_PROPERTY處和函數(shù)實(shí)現(xiàn)處改為double后,可正常顯示,如下圖

因此,Q_PROPERTY可能支持很多種類型,但不一定能顯示多種類型。

Qt 自定義屬性Q_PROPERTY

Q_PROPERTY()是一個(gè)宏,用來(lái)在一個(gè)類中聲明一個(gè)屬性property,由于該宏是qt特有的,需要用moc進(jìn)行編譯,故必須繼承于QObject類。

Q_PROPERTY(type name
? ?READ getFunction
? ?[WRITE setFunction]
? ?[RESET resetFunction]
? ?[NOTIFY notifySignal]
? ?[DESIGNABLE bool]
? ?[SCRIPTABLE bool]
? ?[STORED bool]
? ?[USER bool]
? ?[CONSTANT]
? ?[FINAL])

下面是一些典型的聲明屬性的示例

Q_PROPERTY(double minValue READ getMinValue WRITE setMinValue)
Q_PROPERTY(bool animation READ getAnimation WRITE setAnimation)

Demo

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT
    Q_PROPERTY(int m_flag READ getFlag WRITE setFlag)

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
public:
    int getFlag(){return m_flag;}
    int setFlag(int flag){m_flag = flag;}
private:
    Ui::Widget *ui;
    int m_flag;
};
#endif // WIDGET_H

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論