Qt5和Qt4版本相容性
你曾經下載以前Qt4的範例,然而用Qt5卻編譯失敗 嗎? Qt5將功能清楚地分割和簡化,然而造成新舊版本不相容問題, 例如Qt5無法成功編譯 Qt的Google Map . 還有,你也可能遇到所使用此開源程式碼只支持Qt4,例如開源地圖軟件QGIS.然而,工程師難免遇到程式碼更新或維護舊版的軟體,所以每次Release軟體時都手動修改程式碼後建置嗎?這樣操作不但無形中浪費時間,而且也限制你的程式擴展性. 下表,我整理出這兩個版本相關類別差異,我們主要根據Qt版本修正標頭和專案檔,而Qt的版本檢查主要有以下幾種: 專案檔,參數QT_MAJOR_VERSION檢查Qt主要版本號: 若Qt的版本大於4,需要引用那些模組: greaterThan( QT_MAJOR_VERSION , 4): 若Qt的版本小於5,需要引用那些模組: lessThan( QT_MAJOR_VERSION ,5): 標頭,加入標頭QtGlobal利用巨集QT_VERSION得到Qt版本 #include <QtGlobal> #if QT_VERSION >= 0x050000 //版本大等於5需加入那些標頭 #else //版本小於5需加入那些標頭 #endif 版本對照表 類別 描述 Qt4 Qt5 QApplication 管理 GUI 應用程式控制流向和主要設置 標頭 (Header ) #include <QtGui/QApplication> #include < QApplication> 專案檔 (.pro) QT += gui QT += widgets QWebFrame 在網頁呈現 Frame 標頭 (Header ) #include <QWebFrame> 專案檔 (.pro) QT += gui QT += webkitwidgets QtMultimedia