2
我有我創建的QFlag。我想在QML中使用這個QFlag。具體來說,我希望能夠將一些標誌或者作爲參數傳遞給一個方法。如何在QML中使用QFlags?
我注意到QFlags在這裏不明確列爲QML支持的數據類型:http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html#supported-data-types
哪些類型是否需要註冊或Q_MACROs我需要用它來啓用此功能?
的目標是有一個方法調用,我可以在QML使用看起來像這樣:
myObject.setFlag(MyFlagType.A | MyFlagType.C)
我QFlag代碼:
#include <QFlags>
#include <QObject>
class ColorPickerStyle : public QObject {
Q_OBJECT
public:
enum ColorPickerStyleFlag {
None 0x00,
MSOfficeColors = 0x01,
RGBSlider = 0x02,
ColorWheel = 0x04,
CustomColorSet = 0x08
};
//Create ColorPickerStyle::Flags as a type
Q_DECLARE_FLAGS(Flags, ColorPickerStyleFlag)
//Register ColorPickerStyle::Flags with the meta-type system
Q_FLAGS(Flags)
Q_ENUMS(ColorPickerStyleFlag)
ColorPickerStyle();
virtual ~ColorPickerStyle();
};
//Qt requires lots of macros
Q_DECLARE_OPERATORS_FOR_FLAGS(ColorPickerStyle::Flags)