⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qvariant.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QVARIANT_H#define QVARIANT_H#include <QtCore/qatomic.h>#include <QtCore/qbytearray.h>#include <QtCore/qlist.h>#include <QtCore/qmetatype.h>#include <QtCore/qmap.h>#include <QtCore/qstring.h>QT_BEGIN_HEADERQT_MODULE(Core)class QBitArray;class QDataStream;class QDate;class QDateTime;class QLine;class QLineF;class QLocale;class QStringList;class QTime;class QPoint;class QPointF;class QSize;class QSizeF;class QRect;class QRectF;class QRegExp;class QTextFormat;class QTextLength;class QUrl;class QVariant;class QVariantComparisonHelper;#ifndef QT_NO_MEMBER_TEMPLATEStemplate <typename T>inline QVariant qVariantFromValue(const T &);template <typename T>inline void qVariantSetValue(QVariant &, const T &);template<typename T>inline T qVariantValue(const QVariant &);template<typename T>inline bool qVariantCanConvert(const QVariant &);#endifclass Q_CORE_EXPORT QVariant{ public:    enum Type {        Invalid = 0,        Bool = 1,        Int = 2,        UInt = 3,        LongLong = 4,        ULongLong = 5,        Double = 6,        Char = 7,        Map = 8,        List = 9,        String = 10,        StringList = 11,        ByteArray = 12,        BitArray = 13,        Date = 14,        Time = 15,        DateTime = 16,        Url = 17,        Locale = 18,        Rect = 19,        RectF = 20,        Size = 21,        SizeF = 22,        Line = 23,        LineF = 24,        Point = 25,        PointF = 26,	RegExp = 27,#ifdef QT3_SUPPORT        ColorGroup = 63,#endif        Font = 64,        Pixmap = 65,        Brush = 66,        Color = 67,        Palette = 68,        Icon = 69,        Image = 70,        Polygon = 71,        Region = 72,        Bitmap = 73,        Cursor = 74,        SizePolicy = 75,        KeySequence = 76,        Pen = 77,        TextLength = 78,        TextFormat = 79,        UserType = 127,#ifdef QT3_SUPPORT        IconSet = Icon,        CString = ByteArray,        PointArray = Polygon,#endif        LastType = 0xffffffff // need this so that gcc >= 3.4 allocates 32 bits for Type    };    inline QVariant();    ~QVariant();    QVariant(Type type);    QVariant(int typeOrUserType, const void *copy);    QVariant(const QVariant &other);#ifndef QT_NO_DATASTREAM    QVariant(QDataStream &s);#endif    QVariant(int i);    QVariant(uint ui);    QVariant(qlonglong ll);    QVariant(qulonglong ull);    QVariant(bool b);    QVariant(double d);#ifndef QT_NO_CAST_FROM_ASCII    QVariant(const char *str);#endif    QVariant(const QByteArray &bytearray);    QVariant(const QBitArray &bitarray);    QVariant(const QString &string);    QVariant(const QLatin1String &string);    QVariant(const QStringList &stringlist);    QVariant(const QChar &qchar);    QVariant(const QDate &date);    QVariant(const QTime &time);    QVariant(const QDateTime &datetime);    QVariant(const QList<QVariant> &list);    QVariant(const QMap<QString,QVariant> &map);#ifndef QT_NO_GEOM_VARIANT    QVariant(const QSize &size);    QVariant(const QSizeF &size);    QVariant(const QPoint &pt);    QVariant(const QPointF &pt);    QVariant(const QLine &line);    QVariant(const QLineF &line);    QVariant(const QRect &rect);    QVariant(const QRectF &rect);#endif    QVariant(const QUrl &url);    QVariant(const QLocale &locale);    QVariant(const QRegExp &regExp);    QVariant& operator=(const QVariant &other);    Type type() const;    int userType() const;    const char *typeName() const;    bool canConvert(Type t) const;    bool convert(Type t);#ifdef QT3_SUPPORT    inline QT3_SUPPORT bool canCast(Type t) const    { return canConvert(t); }    inline QT3_SUPPORT bool cast(Type t)    { return convert(t); }#endif    inline bool isValid() const;    bool isNull() const;    void clear();    void detach();    inline bool isDetached() const;    int toInt(bool *ok = 0) const;    uint toUInt(bool *ok = 0) const;    qlonglong toLongLong(bool *ok = 0) const;    qulonglong toULongLong(bool *ok = 0) const;    bool toBool() const;    double toDouble(bool *ok = 0) const;    QByteArray toByteArray() const;    QBitArray toBitArray() const;    QString toString() const;    QStringList toStringList() const;    QChar toChar() const;    QDate toDate() const;    QTime toTime() const;    QDateTime toDateTime() const;    QList<QVariant> toList() const;    QMap<QString, QVariant> toMap() const;#ifndef QT_NO_GEOM_VARIANT    QPoint toPoint() const;    QPointF toPointF() const;    QRect toRect() const;    QSize toSize() const;    QSizeF toSizeF() const;    QLine toLine() const;    QLineF toLineF() const;    QRectF toRectF() const;#endif    QUrl toUrl() const;    QLocale toLocale() const;    QRegExp toRegExp() const;#ifdef QT3_SUPPORT    inline QT3_SUPPORT int &asInt();    inline QT3_SUPPORT uint &asUInt();    inline QT3_SUPPORT qlonglong &asLongLong();    inline QT3_SUPPORT qulonglong &asULongLong();    inline QT3_SUPPORT bool &asBool();    inline QT3_SUPPORT double &asDouble();    inline QT3_SUPPORT QByteArray &asByteArray();    inline QT3_SUPPORT QBitArray &asBitArray();    inline QT3_SUPPORT QString &asString();    inline QT3_SUPPORT QStringList &asStringList();    inline QT3_SUPPORT QDate &asDate();    inline QT3_SUPPORT QTime &asTime();    inline QT3_SUPPORT QDateTime &asDateTime();    inline QT3_SUPPORT QList<QVariant> &asList();    inline QT3_SUPPORT QMap<QString,QVariant> &asMap();    inline QT3_SUPPORT QPoint &asPoint();    inline QT3_SUPPORT QRect &asRect();    inline QT3_SUPPORT QSize &asSize();#endif //QT3_SUPPORT#ifndef QT_NO_DATASTREAM    void load(QDataStream &ds);    void save(QDataStream &ds) const;#endif    static const char *typeToName(Type type);    static Type nameToType(const char *name);#ifdef QT3_SUPPORT    inline QT3_SUPPORT_CONSTRUCTOR QVariant(bool val, int) { create(Bool, &val); }    inline QT3_SUPPORT const QByteArray toCString() const { return toByteArray(); }    inline QT3_SUPPORT QByteArray &asCString() { return *reinterpret_cast<QByteArray *>(castOrDetach(ByteArray)); }#endif    void *data();    const void *constData() const;    inline const void *data() const { return constData(); }#ifndef QT_NO_MEMBER_TEMPLATES    template<typename T>    inline void setValue(const T &value);    template<typename T>    inline T value() const    { return qVariantValue<T>(*this); }    template<typename T>    static inline QVariant fromValue(const T &value)    { return qVariantFromValue(value); }    template<typename T>    bool canConvert() const    { return qVariantCanConvert<T>(*this); }#endif public:#ifndef qdoc    struct PrivateShared    {        inline PrivateShared() : ref(1) { }        inline PrivateShared(void *v) : ref(1) { ptr = v; }        void *ptr;        QAtomic ref;    };    struct Private    {        inline Private(): type(Invalid), is_shared(false), is_null(true) { data.ptr = 0; }        inline Private(const Private &other)            : data(other.data), type(other.type),              is_shared(other.is_shared), is_null(other.is_null)        {}        union Data        {            int i;            uint u;            bool b;            double d;            qlonglong ll;            qulonglong ull;            void *ptr;            PrivateShared *shared;        } data;        uint type : 30;        uint is_shared : 1;        uint is_null : 1;    }; public:    typedef void (*f_construct)(Private *, const void *);    typedef void (*f_clear)(Private *);    typedef bool (*f_null)(const Private *);#ifndef QT_NO_DATASTREAM    typedef void (*f_load)(Private *, QDataStream &);    typedef void (*f_save)(const Private *, QDataStream &);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -