是否有(Qt)方法来确定Qt应用程序在运行时运行的平台?如何确定Qt在运行时运行的平台?
25
A
回答
26
请注意,Q_WS_ *宏是在编译时定义的,但QSysInfo提供了一些运行时细节。
为了延长GS的函数来获取运行时的特定的Windows版本,你可以做
#ifdef Q_WS_WIN
switch(QSysInfo::windowsVersion())
{
case QSysInfo::WV_2000: return "Windows 2000";
case QSysInfo::WV_XP: return "Windows XP";
case QSysInfo::WV_VISTA: return "Windows Vista";
default: return "Windows";
}
#endif
,并为Mac类似。
56
意向:虽然我不想提了一个问题 这是近2年的时候,我觉得 一个好的修正答案是有价值 有记录,这样其他人 结束了在这个问题上能以正确的方式执行 。
我不禁注意到,大部分的答案建议使用Q_WS宏集,以确定操作系统,这不是一个很好的解决方案,因为Q_WS_ *指的是视窗系统,而不是工作系统平台(例如,X11可以在Windows或Mac OS X上运行,那么怎么办?),因此不应该按照这些宏来确定应用程序编译的平台。
取而代之的是应该使用Q_OS_ *宏集,这些宏具有确定操作系统的确切目的。
该组目前由以下的宏:
Q_OS_AIX
Q_OS_BSD4
Q_OS_BSDI
Q_OS_CYGWIN
Q_OS_DARWIN
Q_OS_DGUX
Q_OS_DYNIX
Q_OS_FREEBSD
Q_OS_HPUX
Q_OS_HURD
Q_OS_IRIX
Q_OS_LINUX
Q_OS_LYNX
Q_OS_MAC
Q_OS_MSDOS
Q_OS_NETBSD
Q_OS_OS2
Q_OS_OPENBSD
Q_OS_OS2EMX
Q_OS_OSF
Q_OS_QNX
Q_OS_RELIANT
Q_OS_SCO
Q_OS_SOLARIS
Q_OS_SYMBIAN
Q_OS_ULTRIX
Q_OS_UNIX
Q_OS_UNIXWARE
Q_OS_WIN32
Q_OS_WINCE
参考:http://doc.qt.io/qt-4.8/qtglobal.html
NB:由于在评论中提到由奇才,Qt的5完全除去Q_WS_ *设定宏,从而现在所有你可以使用的都是Q_OS_ *。
+4
总是欢迎好的答案 – 2011-02-08 20:12:06
0
对于QT5我使用以下命令:
logging.info("##### System Information #####")
sysinfo = QtCore.QSysInfo()
logging.info("buildCpuArchitecture: " + sysinfo.buildCpuArchitecture())
logging.info("currentCpuArchitecture: " + sysinfo.currentCpuArchitecture())
logging.info("kernel type and version: " + sysinfo.kernelType() + " " + sysinfo.kernelVersion())
logging.info("product name and version: " + sysinfo.prettyProductName())
logging.info("#####")
相关问题
- 1. 如何在运行时从便携库中确定.net平台?
- 2. 如何确定R在哪个平台上运行?
- 3. 我如何确定哪个平台正在运行?
- 4. 在特定平台上运行Ruby gem
- 5. 我如何确定在运行时从一个.NET标准库调用平台?
- 6. 如何确定块是否在运行时同步运行
- 7. 如何确定是否在Mono运行时运行
- 8. 运行memcached的平台
- 9. 在运行时确定(C#)
- 10. Qt在特定时间运行?
- 11. 运行ASP.NET 5跨平台
- 12. 在Java运行时确定基类在运行时
- 13. 如何确定当前应用程序在LibGDX上运行的平台?
- 14. 不同的EXE如何在正确的运行时运行?
- 15. Jxbtrowser在运行时检索平台特定的人工制品
- 16. 如何仅在特定平台上运行插件
- 17. 如何限制BenchmarkDotNet作业仅在特定平台上运行?
- 18. 如何在后台运行?
- 19. 如何在后台运行
- 20. 平台特定库的运行时间还是编译时间?
- 21. 如何在运行时使用MvvMCross检测平台?
- 22. 在云平台上运行Hadoop的
- 23. QT,运行特定时间的功能
- 24. 如何在后台运行计时器?
- 25. 如何在后台运行计时器
- 26. 如何正确运行后台服务?
- 27. 确定运行时间
- 28. 如何在后台运行其他功能时在后台运行功能?
- 29. 运行“登台运行”时出错
- 30. 自适应运行时平台支持哪些平台?
废弃了,因为Qt的5.在Shinnok的答案是正确的。 – SexyBeast 2016-02-06 16:59:36