用于检测OS的PyQt API

时间:2011-05-29 07:37:21

标签: python pyqt

我正在将一些代码从C ++ / Qt移植到Python / PyQt。

我该怎么办

#ifdef Q_OS_WIN
    ...
#else

是否存在与Qt宏Q_OS_WIN等效的PyQt?

3 个答案:

答案 0 :(得分:3)

为什么你想要这样做而不是使用sys模块中的Python sys.platform

import sys
if sys.platform == 'win32':
    print("win")
else:
    print("winner!")

我必须提到即使你在x64 python上运行,win32也是一样的。

答案 1 :(得分:0)

与C ++不同,Python中没有预处理器。这意味着您无法完全排除编译器/解释器看到的代码块。

但是,对于大多数实际用途,将相关的代码块放在Python if语句中就足够了。

查看Python: What OS am I running on?

答案 2 :(得分:0)

测试基础操作系统是否为macintosh

import PyQt4.QtGui
MAC = hasattr(PyQt4.QtGui, "qt_mac_set_native_menubar")

测试底层操作系统是否为Linux / X11,BSD,Solaris

import PyQt4.QtGui
X11 = hasattr(PyQt4.QtGui, "qt_x11_wait_for_window_manager")

来自Mark Summerfield的书

我不知道具体的Windows测试,但如果上面两个返回None,那么系统很可能是Windows。