舊的Qt4代碼遷移到Qt5注意點如下:
1. 錯誤: 很多的類提示不可用了
Qt4: #include <QtGui>
Qt5: #include <QtWidgets>
這是不太建議這樣的寫,因爲這樣會加入過多的頭文件包含,建議用到哪一些類,才包含;
2.錯誤:無法打開包括文件: “QtConcurrent”: No such file or directory
Qt4: #include <QtConcurrent>
Qt5: #include <QtConcurrent/QtConcurrent>
路徑變化引起的
3.錯誤: LNK2001 或 LNK2019 提示無法解析的外部符號 “QGraphicsWidget::XXXX ” “QGraphicsItem::XXXX “
詳細錯誤例子爲:
error LNK2001: 無法解析的外部符號 “protected: virtual void __thiscall QGraphicsItem::dragLeaveEvent(class QGraphicsSceneDragDropEvent *)”
如果是使用C++調用Qt4庫的方法,容易提示這個,這是由於Qt5把QGraphics
相關移到Qt5Widgets.dll下面,原來的QString、QColor等在Qt5Gui.dll、Qt5Gui.dll下面,
故加入“鏈接器-》輸入-》附加依賴項”
Qt5Widgets.lib
(deubug爲Qt5Widgetsd.lib)
(這個找了好久 = =!)