📄 qglobal.h
字号:
# define Q_CC_EDG/* From the EDG documentation (does not seem to apply to Compaq C++): _BOOL Defined in C++ mode when bool is a keyword. The name of this predefined macro is specified by a configuration flag. _BOOL is the default. __BOOL_DEFINED Defined in Microsoft C++ mode when bool is a keyword. */# if !defined(_BOOL) && !defined(__BOOL_DEFINED)# define Q_NO_BOOL_TYPE# endif/* The Comeau compiler is based on EDG and does define __EDG__ */# if defined(__COMO__)# define Q_CC_COMEAU# define Q_C_CALLBACKS/* The `using' keyword was introduced to avoid KAI C++ warnings but it's now causing KAI C++ errors instead. The standard is unclear about the use of this keyword, and in practice every compiler is using its own set of rules. Forget it. */# elif defined(__KCC)# define Q_CC_KAI# define Q_NO_USING_KEYWORD/* Using the `using' keyword avoids Intel C++ for Linux warnings */# elif defined(__INTEL_COMPILER)# define Q_CC_INTEL/* Uses CFront, make sure to read the manual how to tweak templates. */# elif defined(__ghs)# define Q_CC_GHS/* The UnixWare 7 UDK compiler is based on EDG and does define __EDG__ */# elif defined(__USLC__) && defined(__SCO_VERSION__)# define Q_CC_USLC/* The latest UDK 7.1.1b does not need this, but previous versions do */# if !defined(__SCO_VERSION__) || (__SCO_VERSION__ < 302200010)# define Q_OUTOFLINE_TEMPLATE inline# endif# define Q_NO_USING_KEYWORD /* ### check "using" status *//* Never tested! */# elif defined(CENTERLINE_CLPP) || defined(OBJECTCENTER)# define Q_CC_OC# define Q_NO_USING_KEYWORD/* CDS++ defines __EDG__ although this is not documented in the Reliant documentation. It also follows conventions like _BOOL and this documented */# elif defined(sinix)# define Q_CC_CDS# define Q_NO_USING_KEYWORD/* The MIPSpro compiler defines __EDG */# elif defined(__sgi)# define Q_CC_MIPS# define Q_NO_USING_KEYWORD /* ### check "using" status */# if defined(_COMPILER_VERSION) && (_COMPILER_VERSION >= 740)# define Q_OUTOFLINE_TEMPLATE inline# pragma set woff 3624,3625,3649 /* turn off some harmless warnings */# endif# endif/* Never tested! */#elif defined(__HIGHC__)# define Q_CC_HIGHC#elif defined(__SUNPRO_CC) || defined(__SUNPRO_C)# define Q_CC_SUN/* 5.0 compiler or better 'bool' is enabled by default but can be disabled using -features=nobool in which case _BOOL is not defined this is the default in 4.2 compatibility mode triggered by -compat=4 */# if __SUNPRO_CC >= 0x500# if !defined(_BOOL)# define Q_NO_BOOL_TYPE# endif# if defined(__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT <= 4)# define Q_NO_USING_KEYWORD# endif# define Q_C_CALLBACKS/* 4.2 compiler or older */# else# define Q_NO_BOOL_TYPE# define Q_NO_EXPLICIT_KEYWORD# define Q_NO_USING_KEYWORD# endif/* CDS++ does not seem to define __EDG__ or __EDG according to Reliant documentation but nevertheless uses EDG conventions like _BOOL */#elif defined(sinix)# define Q_CC_EDG# define Q_CC_CDS# if !defined(_BOOL)# define Q_NO_BOOL_TYPE# endif# define Q_BROKEN_TEMPLATE_SPECIALIZATION#elif defined(Q_OS_HPUX)/* __HP_aCC was not defined in first aCC releases */# if defined(__HP_aCC) || __cplusplus >= 199707L# define Q_CC_HPACC# else# define Q_CC_HP# define Q_NO_BOOL_TYPE# define Q_FULL_TEMPLATE_INSTANTIATION# define Q_BROKEN_TEMPLATE_SPECIALIZATION# define Q_NO_EXPLICIT_KEYWORD# endif# define Q_NO_USING_KEYWORD /* ### check "using" status */#else# error "Qt has not been tested with this compiler - talk to qt-bugs@trolltech.com"#endif#ifndef Q_PACKED# define Q_PACKED# undef Q_NO_PACKED_REFERENCE#endif#ifndef Q_CONSTRUCTOR_FUNCTION# define Q_CONSTRUCTOR_FUNCTION(AFUNC) \ static const int AFUNC ## __init_variable__ = AFUNC();#endif#ifndef Q_DESTRUCTOR_FUNCTION# define Q_DESTRUCTOR_FUNCTION(AFUNC) \ class AFUNC ## __dest_class__ { \ public: \ inline AFUNC ## __dest_class__() { } \ inline ~ AFUNC ## __dest_class__() { AFUNC(); } \ } AFUNC ## __dest_instance__;#endif#ifndef Q_REQUIRED_RESULT# if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))# define Q_REQUIRED_RESULT __attribute__ ((warn_unused_result))# else# define Q_REQUIRED_RESULT# endif#endif/* The window system, must be one of: (Q_WS_x) MACX - Mac OS X MAC9 - Mac OS 9 QWS - Qtopia Core WIN32 - Windows X11 - X Window System PM - unsupported WIN16 - unsupported*/#if defined(Q_OS_MSDOS)# define Q_WS_WIN16# error "Qt requires Win32 and does not work with Windows 3.x"#elif defined(_WIN32_X11_)# define Q_WS_X11#elif defined(Q_OS_WIN32)# define Q_WS_WIN32# if defined(Q_OS_WIN64)# define Q_WS_WIN64# endif#elif defined(Q_OS_OS2)# define Q_WS_PM# error "Qt does not work with OS/2 Presentation Manager or Workplace Shell"#elif defined(Q_OS_UNIX)# if defined(Q_OS_MAC) && !defined(__USE_WS_X11__) && !defined(Q_WS_QWS)# define Q_WS_MAC# define Q_WS_MACX# if defined(Q_OS_MAC64)# define Q_WS_MAC64# elif defined(Q_OS_MAC32)# define Q_WS_MAC32# endif# elif !defined(Q_WS_QWS)# define Q_WS_X11# endif#endif#if defined(Q_WS_WIN16) || defined(Q_WS_WIN32)# define Q_WS_WIN#endif/* Size-dependent types (architechture-dependent byte order) Make sure to update QMetaType when changing these typedefs*/typedef signed char qint8; /* 8 bit signed */typedef unsigned char quint8; /* 8 bit unsigned */typedef short qint16; /* 16 bit signed */typedef unsigned short quint16; /* 16 bit unsigned */typedef int qint32; /* 32 bit signed */typedef unsigned int quint32; /* 32 bit unsigned */#if defined(Q_OS_WIN) && !defined(Q_CC_GNU)# define Q_INT64_C(c) c ## i64 /* signed 64 bit constant */# define Q_UINT64_C(c) c ## ui64 /* unsigned 64 bit constant */typedef __int64 qint64; /* 64 bit signed */typedef unsigned __int64 quint64; /* 64 bit unsigned */#else# define Q_INT64_C(c) static_cast<long long>(c ## LL) /* signed 64 bit constant */# define Q_UINT64_C(c) static_cast<unsigned long long>(c ## ULL) /* unsigned 64 bit constant */typedef long long qint64; /* 64 bit signed */typedef unsigned long long quint64; /* 64 bit unsigned */#endiftypedef qint64 qlonglong;typedef quint64 qulonglong;#ifndef QT_POINTER_SIZE# if defined(Q_OS_WIN64)# define QT_POINTER_SIZE 8# elif defined(Q_OS_WIN32)# define QT_POINTER_SIZE 4# endif#endif#define Q_INIT_RESOURCE(name) \ do { extern int qInitResources_ ## name (); \ qInitResources_ ## name (); } while (0)#define Q_CLEANUP_RESOURCE(name) \ do { extern int qCleanupResources_ ## name (); \ qCleanupResources_ ## name (); } while (0)#if defined(__cplusplus)/* quintptr and qptrdiff is guaranteed to be the same size as a pointer, i.e. sizeof(void *) == sizeof(quintptr) && sizeof(void *) == sizeof(qptrdiff)*/template <int> class QUintForSize { private: typedef void Type; };template <> class QUintForSize<4> { public: typedef quint32 Type; };template <> class QUintForSize<8> { public: typedef quint64 Type; };template <typename T> class QUintForType : public QUintForSize<sizeof(T)> { };typedef QUintForType<void *>::Type quintptr;template <int> class QIntForSize { private: typedef void Type; };template <> class QIntForSize<4> { public: typedef qint32 Type; };template <> class QIntForSize<8> { public: typedef qint64 Type; };template <typename T> class QIntForType : public QIntForSize<sizeof(T)> { };typedef QIntForType<void *>::Type qptrdiff;/* Useful type definitions for Qt*/typedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned int uint;typedef unsigned long ulong;#if defined(Q_NO_BOOL_TYPE)#error "Compiler doesn't support the bool type"#endif/* Constant bool values*/#ifndef QT_LSB /* the LSB defines TRUE and FALSE for us */# ifndef TRUE# define TRUE true# define FALSE false# endif#endif#if defined(Q_OS_MAC) && !defined(Q_CC_INTEL)#define QT_BEGIN_HEADER extern "C++" {#define QT_END_HEADER }#else#define QT_BEGIN_HEADER#define QT_END_HEADER#endifQT_BEGIN_HEADER/* Proper for-scoping in VC++6 and MIPSpro CC*/#ifndef QT_NO_KEYWORDS# if (defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET) && !defined(Q_CC_INTEL)) || defined(Q_CC_MIPS) || (defined(Q_CC_HPACC) && defined(__ia64))# define for if(0){}else for# endif#endif/* Workaround for static const members on MSVC++.*/#if defined(Q_CC_MSVC)# define QT_STATIC_CONST static# define QT_STATIC_CONST_IMPL#else# define QT_STATIC_CONST static const# define QT_STATIC_CONST_IMPL const#endif/* Warnings and errors when using deprecated methods*/#if defined(Q_MOC_RUN)# define Q_DECL_DEPRECATED Q_DECL_DEPRECATED#elif defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2))# define Q_DECL_DEPRECATED __attribute__ ((__deprecated__))#elif defined(Q_CC_MSVC) && (_MSC_VER >= 1300)# define Q_DECL_DEPRECATED __declspec(deprecated)# if defined (Q_CC_INTEL)# define Q_DECL_VARIABLE_DEPRECATED# else# endif#else# define Q_DECL_DEPRECATED#endif#ifndef Q_DECL_VARIABLE_DEPRECATED# define Q_DECL_VARIABLE_DEPRECATED Q_DECL_DEPRECATED#endif#ifndef Q_DECL_CONSTRUCTOR_DEPRECATED# if defined(Q_MOC_RUN)# define Q_DECL_CONSTRUCTOR_DEPRECATED Q_DECL_CONSTRUCTOR_DEPRECATED# elif defined(Q_NO_DEPRECATED_CONSTRUCTORS)# define Q_DECL_CONSTRUCTOR_DEPRECATED# else# define Q_DECL_CONSTRUCTOR_DEPRECATED Q_DECL_DEPRECATED# endif#endif#if defined(QT_NO_DEPRECATED)/* disable Qt3 support as well */# undef QT3_SUPPORT_WARNINGS# undef QT3_SUPPORT# undef QT_DEPRECATED# undef QT_DEPRECATED_VARIABLE# undef QT_DEPRECATED_CONSTRUCTOR#elif defined(QT_DEPRECATED_WARNINGS)/* enable Qt3 support warnings as well */# undef QT3_SUPPORT_WARNINGS# define QT3_SUPPORT_WARNINGS# undef QT_DEPRECATED# define QT_DEPRECATED Q_DECL_DEPRECATED# undef QT_DEPRECATED_VARIABLE# define QT_DEPRECATED_VARIABLE Q_DECL_VARIABLE_DEPRECATED# undef QT_DEPRECATED_CONSTRUCTOR# define QT_DEPRECATED_CONSTRUCTOR explicit Q_DECL_CONSTRUCTOR_DEPRECATED#else# undef QT_DEPRECATED# define QT_DEPRECATED# undef QT_DEPRECATED_VARIABLE# define QT_DEPRECATED_VARIABLE# undef QT_DEPRECATED_CONSTRUCTOR# define QT_DEPRECATED_CONSTRUCTOR#endif#if defined(QT3_SUPPORT_WARNINGS)# if !defined(QT_COMPAT_WARNINGS) /* also enable compat */# define QT_COMPAT_WARNINGS# endif# undef QT3_SUPPORT# define QT3_SUPPORT Q_DECL_DEPRECATED# undef QT3_SUPPORT_VARIABLE# define QT3_SUPPORT_VARIABLE Q_DECL_VARIABLE_DEPRECATED# undef QT3_SUPPORT_CONSTRUCTOR# define QT3_SUPPORT_CONSTRUCTOR explicit Q_DECL_CONSTRUCTOR_DEPRECATED#elif defined(QT3_SUPPORT) /* define back to nothing */# if !defined(QT_COMPAT) /* also enable qt3 support */# define QT_COMPAT# endif# undef QT3_SUPPORT# define QT3_SUPPORT# undef QT3_SUPPORT_VARIABLE# define QT3_SUPPORT_VARIABLE# undef QT3_SUPPORT_CONSTRUCTOR# define QT3_SUPPORT_CONSTRUCTOR explicit#endif/* moc compats (signals/slots) */#ifndef QT_MOC_COMPAT# if defined(QT3_SUPPORT)# define QT_MOC_COMPAT QT3_SUPPORT# else# define QT_MOC_COMPAT# endif#else# undef QT_MOC_COMPAT# define QT_MOC_COMPAT#endif#ifdef QT_ASCII_CAST_WARNINGS# define QT_ASCII_CAST_WARN Q_DECL_DEPRECATED# if defined(Q_CC_GNU) && __GNUC__ < 4 /* gcc < 4 doesn't like Q_DECL_DEPRECATED in front of constructors */# define QT_ASCII_CAST_WARN_CONSTRUCTOR# else# define QT_ASCII_CAST_WARN_CONSTRUCTOR Q_DECL_CONSTRUCTOR_DEPRECATED# endif#else# define QT_ASCII_CAST_WARN# define QT_ASCII_CAST_WARN_CONSTRUCTOR#endif#ifdef __i386__# if defined(Q_CC_GNU)#if !defined(Q_CC_INTEL) && ((100*(__GNUC__ - 0) + 10*(__GNUC_MINOR__ - 0) + __GNUC_PATCHLEVEL__) >= 332)# define QT_FASTCALL __attribute__((regparm(3)))#else# define QT_FASTCALL#endif# elif defined(Q_CC_MSVC)# define QT_FASTCALL __fastcall# else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -