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

📄 qguivariant.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        if (d->type == QVariant::Color) {            *static_cast<QByteArray *>(result) = v_cast<QColor>(d)->name().toLatin1();            return true;        }        break;    case QVariant::String: {        QString *str = static_cast<QString *>(result);        switch (d->type) {#ifndef QT_NO_SHORTCUT        case QVariant::KeySequence:            *str = QString(*v_cast<QKeySequence>(d));            return true;#endif        case QVariant::Font:            *str = v_cast<QFont>(d)->toString();            return true;        case QVariant::Color:            *str = v_cast<QColor>(d)->name();            return true;        default:            break;        }        break;    }    case QVariant::Pixmap:        if (d->type == QVariant::Image) {            *static_cast<QPixmap *>(result) = QPixmap::fromImage(*v_cast<QImage>(d));            return true;        } else if (d->type == QVariant::Bitmap) {            *static_cast<QPixmap *>(result) = *v_cast<QBitmap>(d);            return true;        } else if (d->type == QVariant::Brush) {            if (v_cast<QBrush>(d)->style() == Qt::TexturePattern) {                *static_cast<QPixmap *>(result) = v_cast<QBrush>(d)->texture();                return true;            }        }        break;    case QVariant::Image:        if (d->type == QVariant::Pixmap) {            *static_cast<QImage *>(result) = v_cast<QPixmap>(d)->toImage();            return true;        } else if (d->type == QVariant::Bitmap) {            *static_cast<QImage *>(result) = v_cast<QBitmap>(d)->toImage();            return true;        }        break;    case QVariant::Bitmap:        if (d->type == QVariant::Pixmap) {            *static_cast<QBitmap *>(result) = *v_cast<QPixmap>(d);            return true;        } else if (d->type == QVariant::Image) {            *static_cast<QBitmap *>(result) = QBitmap::fromImage(*v_cast<QImage>(d));            return true;        }        break;#ifndef QT_NO_SHORTCUT    case QVariant::Int:        if (d->type == QVariant::KeySequence) {            *static_cast<int *>(result) = (int)(*(v_cast<QKeySequence>(d)));            return true;        }        break;#endif    case QVariant::Font:        if (d->type == QVariant::String) {            QFont *f = static_cast<QFont *>(result);            f->fromString(*v_cast<QString>(d));            return true;        }        break;    case QVariant::Color:        if (d->type == QVariant::String) {            static_cast<QColor *>(result)->setNamedColor(*v_cast<QString>(d));            return static_cast<QColor *>(result)->isValid();        } else if (d->type == QVariant::ByteArray) {            static_cast<QColor *>(result)->setNamedColor(QString::fromLatin1(                                *v_cast<QByteArray>(d)));            return true;        } else if (d->type == QVariant::Brush) {            if (v_cast<QBrush>(d)->style() == Qt::SolidPattern) {                *static_cast<QColor *>(result) = v_cast<QBrush>(d)->color();                return true;            }        }        break;    case QVariant::Brush:        if (d->type == QVariant::Color) {            *static_cast<QBrush *>(result) = QBrush(*v_cast<QColor>(d));            return true;        } else if (d->type == QVariant::Pixmap) {            *static_cast<QBrush *>(result) = QBrush(*v_cast<QPixmap>(d));            return true;        }        break;#ifndef QT_NO_SHORTCUT    case QVariant::KeySequence: {        QKeySequence *seq = static_cast<QKeySequence *>(result);        switch (d->type) {        case QVariant::String:            *seq = QKeySequence(*v_cast<QString>(d));            return true;        case QVariant::Int:            *seq = QKeySequence(d->data.i);            return true;        default:            break;        }    }#endif    default:        break;    }    return qcoreVariantHandler()->convert(d, t, result, ok);}#if !defined(QT_NO_DEBUG_STREAM) && !defined(Q_BROKEN_DEBUG_STREAM)static void streamDebug(QDebug dbg, const QVariant &v){    switch(v.type()) {    case QVariant::Cursor:#ifndef QT_NO_CURSOR//        dbg.nospace() << qvariant_cast<QCursor>(v); //FIXME#endif        break;    case QVariant::Bitmap://        dbg.nospace() << qvariant_cast<QBitmap>(v); //FIXME        break;    case QVariant::Polygon:        dbg.nospace() << qvariant_cast<QPolygon>(v);        break;    case QVariant::Region:        dbg.nospace() << qvariant_cast<QRegion>(v);        break;    case QVariant::Font://        dbg.nospace() << qvariant_cast<QFont>(v);  //FIXME        break;    case QVariant::Matrix:        dbg.nospace() << qvariant_cast<QMatrix>(v);        break;    case QVariant::Transform:        dbg.nospace() << qvariant_cast<QTransform>(v);        break;    case QVariant::Pixmap://        dbg.nospace() << qvariant_cast<QPixmap>(v); //FIXME        break;    case QVariant::Image://        dbg.nospace() << qvariant_cast<QImage>(v); //FIXME        break;    case QVariant::Brush:        dbg.nospace() << qvariant_cast<QBrush>(v);        break;    case QVariant::Color:        dbg.nospace() << qvariant_cast<QColor>(v);        break;    case QVariant::Palette://        dbg.nospace() << qvariant_cast<QPalette>(v); //FIXME        break;#ifndef QT_NO_ICON    case QVariant::Icon://        dbg.nospace() << qvariant_cast<QIcon>(v); // FIXME        break;#endif    case QVariant::SizePolicy://        dbg.nospace() << qvariant_cast<QSizePolicy>(v); //FIXME        break;#ifndef QT_NO_SHORTCUT    case QVariant::KeySequence:        dbg.nospace() << qvariant_cast<QKeySequence>(v);        break;#endif    case QVariant::Pen:        dbg.nospace() << qvariant_cast<QPen>(v);        break;    default:        qcoreVariantHandler()->debugStream(dbg, v);        break;    }}#endifconst QVariant::Handler qt_gui_variant_handler = {    construct,    clear,    isNull,#ifndef QT_NO_DATASTREAM    0,    0,#endif    compare,    convert,    0,#if !defined(QT_NO_DEBUG_STREAM) && !defined(Q_BROKEN_DEBUG_STREAM)    streamDebug#else    0#endif};struct QMetaTypeGuiHelper{    QMetaType::Constructor constr;    QMetaType::Destructor destr;#ifndef QT_NO_DATASTREAM    QMetaType::SaveOperator saveOp;    QMetaType::LoadOperator loadOp;#endif};#ifdef QT_MAKEDLL#  define Q_VARIANT_DECL_IMPORT Q_DECL_IMPORT#else#  define Q_VARIANT_DECL_IMPORT#endifextern Q_VARIANT_DECL_IMPORT const QMetaTypeGuiHelper *qMetaTypeGuiHelper;#ifdef QT_NO_DATASTREAM#  define Q_DECL_METATYPE_HELPER(TYPE) \     typedef void *(*QConstruct##TYPE)(const TYPE *); \     static const QConstruct##TYPE qConstruct##TYPE = qMetaTypeConstructHelper<TYPE>; \     typedef void (*QDestruct##TYPE)(TYPE *); \     static const QDestruct##TYPE qDestruct##TYPE = qMetaTypeDeleteHelper<TYPE>;#else#  define Q_DECL_METATYPE_HELPER(TYPE) \     typedef void *(*QConstruct##TYPE)(const TYPE *); \     static const QConstruct##TYPE qConstruct##TYPE = qMetaTypeConstructHelper<TYPE>; \     typedef void (*QDestruct##TYPE)(TYPE *); \     static const QDestruct##TYPE qDestruct##TYPE = qMetaTypeDeleteHelper<TYPE>; \     typedef void (*QSave##TYPE)(QDataStream &, const TYPE *); \     static const QSave##TYPE qSave##TYPE = qMetaTypeSaveHelper<TYPE>; \     typedef void (*QLoad##TYPE)(QDataStream &, TYPE *); \     static const QLoad##TYPE qLoad##TYPE = qMetaTypeLoadHelper<TYPE>;#endif#ifdef QT3_SUPPORTQ_DECL_METATYPE_HELPER(QColorGroup)#endifQ_DECL_METATYPE_HELPER(QFont)Q_DECL_METATYPE_HELPER(QPixmap)Q_DECL_METATYPE_HELPER(QBrush)Q_DECL_METATYPE_HELPER(QColor)Q_DECL_METATYPE_HELPER(QPalette)#ifndef QT_NO_ICONQ_DECL_METATYPE_HELPER(QIcon)#endifQ_DECL_METATYPE_HELPER(QImage)Q_DECL_METATYPE_HELPER(QPolygon)Q_DECL_METATYPE_HELPER(QRegion)Q_DECL_METATYPE_HELPER(QBitmap)#ifndef QT_NO_CURSORQ_DECL_METATYPE_HELPER(QCursor)#endifQ_DECL_METATYPE_HELPER(QSizePolicy)#ifndef QT_NO_SHORTCUTQ_DECL_METATYPE_HELPER(QKeySequence)#endifQ_DECL_METATYPE_HELPER(QPen)Q_DECL_METATYPE_HELPER(QTextLength)Q_DECL_METATYPE_HELPER(QTextFormat)Q_DECL_METATYPE_HELPER(QMatrix)Q_DECL_METATYPE_HELPER(QTransform)#ifdef QT_NO_DATASTREAM#  define Q_IMPL_METATYPE_HELPER(TYPE) \     { reinterpret_cast<QMetaType::Constructor>(qConstruct##TYPE), \       reinterpret_cast<QMetaType::Destructor>(qDestruct##TYPE) }#else#  define Q_IMPL_METATYPE_HELPER(TYPE) \     { reinterpret_cast<QMetaType::Constructor>(qConstruct##TYPE), \       reinterpret_cast<QMetaType::Destructor>(qDestruct##TYPE), \       reinterpret_cast<QMetaType::SaveOperator>(qSave##TYPE), \       reinterpret_cast<QMetaType::LoadOperator>(qLoad##TYPE) \     }#endifstatic const QMetaTypeGuiHelper qVariantGuiHelper[] = {#ifdef QT3_SUPPORT    Q_IMPL_METATYPE_HELPER(QColorGroup),#else    {0, 0, 0, 0},#endif    Q_IMPL_METATYPE_HELPER(QFont),    Q_IMPL_METATYPE_HELPER(QPixmap),    Q_IMPL_METATYPE_HELPER(QBrush),    Q_IMPL_METATYPE_HELPER(QColor),    Q_IMPL_METATYPE_HELPER(QPalette),#ifdef QT_NO_ICON    {0, 0, 0, 0},#else    Q_IMPL_METATYPE_HELPER(QIcon),#endif    Q_IMPL_METATYPE_HELPER(QImage),    Q_IMPL_METATYPE_HELPER(QPolygon),    Q_IMPL_METATYPE_HELPER(QRegion),    Q_IMPL_METATYPE_HELPER(QBitmap),#ifdef QT_NO_CURSOR    {0, 0, 0, 0},#else    Q_IMPL_METATYPE_HELPER(QCursor),#endif    Q_IMPL_METATYPE_HELPER(QSizePolicy),#ifdef QT_NO_SHORTCUT    {0, 0, 0, 0},#else    Q_IMPL_METATYPE_HELPER(QKeySequence),#endif    Q_IMPL_METATYPE_HELPER(QPen),    Q_IMPL_METATYPE_HELPER(QTextLength),    Q_IMPL_METATYPE_HELPER(QTextFormat),    Q_IMPL_METATYPE_HELPER(QMatrix),    Q_IMPL_METATYPE_HELPER(QTransform)};static const QVariant::Handler *qt_guivariant_last_handler = 0;int qRegisterGuiVariant(){    qt_guivariant_last_handler = QVariant::handler;    QVariant::handler = &qt_gui_variant_handler;    qMetaTypeGuiHelper = qVariantGuiHelper;    return 1;}Q_CONSTRUCTOR_FUNCTION(qRegisterGuiVariant)int qUnregisterGuiVariant(){    QVariant::handler = qt_guivariant_last_handler;    qMetaTypeGuiHelper = 0;    return 1;}Q_DESTRUCTOR_FUNCTION(qUnregisterGuiVariant)

⌨️ 快捷键说明

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