是否有(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