Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何跨平台扩展qobject_Qt_Cross Platform_Qt Creator - Fatal编程技术网

Qt 如何跨平台扩展qobject

Qt 如何跨平台扩展qobject,qt,cross-platform,qt-creator,Qt,Cross Platform,Qt Creator,我正在设法获得真正的全局热键(即,即使在应用程序不聚焦的情况下,也会在某些输入上发出信号) 对于win与osx与x11,这将需要不同的代码。在qt creator中,我应该如何使其适合于跨平台开发 编辑:我不想知道如何使用x11、windows等执行实际代码。我只想知道如何为每个平台执行单独的定义 我不想知道如何使用x11、windows等执行实际代码。 我只是想知道我如何为每一个单独的定义 站台 使用基于预定义编译器符号的IFDEF很方便,例如: 您也可以使用或逻辑,因为Mac上的许多东西类

我正在设法获得真正的全局热键(即,即使在应用程序不聚焦的情况下,也会在某些输入上发出信号)

对于win与osx与x11,这将需要不同的代码。在qt creator中,我应该如何使其适合于跨平台开发

编辑:我不想知道如何使用x11、windows等执行实际代码。我只想知道如何为每个平台执行单独的定义

我不想知道如何使用x11、windows等执行实际代码。 我只是想知道我如何为每一个单独的定义 站台

使用基于预定义编译器符号的IFDEF很方便,例如:

您也可以使用或逻辑,因为Mac上的许多东西类似于Linux,反之亦然。不过,请注意编译器,如果它有那个符号。我会将OR逻辑与适用编译器的所有平台符号一起使用

我不想知道如何使用x11、windows等执行实际代码。 我只是想知道我如何为每一个单独的定义 站台

使用基于预定义编译器符号的IFDEF很方便,例如:


您也可以使用或逻辑,因为Mac上的许多东西类似于Linux,反之亦然。不过,请注意编译器,如果它有那个符号。我会将OR逻辑与适用编译器的所有平台符号一起使用。

如果您愿意使用Qt,它的操作系统和编译器定义对您来说非常容易:

#include <QtGlobal>

#if defined(Q_OS_LINUX)
// linux-specifc
#elif defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
// win32 and msvc
#endif
#包括
#如果已定义(Q_OS_LINUX)
//linux专用
#elif已定义(Q_OS_WIN32)和已定义(Q_CC_MSVC)
//win32与msvc
#恩迪夫

.

如果您愿意使用Qt,它的操作系统和编译器定义很容易为您提供:

#include <QtGlobal>

#if defined(Q_OS_LINUX)
// linux-specifc
#elif defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
// win32 and msvc
#endif
#包括
#如果已定义(Q_OS_LINUX)
//linux专用
#elif已定义(Q_OS_WIN32)和已定义(Q_CC_MSVC)
//win32与msvc
#恩迪夫

.

它看起来像这样吗#ifdef linux//linux兼容代码#endif#ifdef macintosh//Mac兼容代码#endif等。有点不确定X11,只要它不是一个操作系统,而是Linux的GUI子系统。如果您真的需要识别,那么应该使用它的符号,例如X11。我将对此进行研究,但出于我的目的,现在我可以安全地假设Linux系统正在运行X11。谢谢:)看起来像这样吗#ifdef linux//linux兼容代码#endif#ifdef macintosh//Mac兼容代码#endif等。有点不确定X11,只要它不是一个操作系统,而是Linux的GUI子系统。如果您真的需要识别,那么应该使用它的符号,例如X11。我将对此进行研究,但出于我的目的,现在我可以安全地假设Linux系统正在运行X11。谢谢:)