我正在将一些代码从C ++ / Qt移植到Python / PyQt。
我该怎么办
#ifdef Q_OS_WIN
...
#else
是否存在与Qt宏Q_OS_WIN等效的PyQt?
答案 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
语句中就足够了。
答案 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。