QT升級(jí)6.0以上版本遇到問(wèn)題以及解決方法
前言
最近重裝QT的時(shí)候發(fā)現(xiàn)QT已經(jīng)升級(jí)到了6.0以上的新版本。既然是重裝,那就跟進(jìn)新的更新。更新新的QT后以前的舊版本建立的工程,自然會(huì)出現(xiàn)兼容性的問(wèn)題,本文就把在后續(xù)各個(gè)QT工程在QT6.0版本下遇到的問(wèn)題已經(jīng)解決辦法記錄下來(lái),以便在其他工程遇到同樣的問(wèn)題可以查詢快速解決問(wèn)題。
QRegExp類的使用沒(méi)有申明
QT6工程編譯使用到QRegExp類時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)
error: 'QRegExp' was not declared in this scope
出現(xiàn)以上問(wèn)題主要是QT6.0以上的程序把 QRegExp類移動(dòng)到了core5compat中了,解決方法便是在pro文件中添加QT += core5compat,并且在使用到QRegExp類的文件中添加包含的頭文件#include <QtCore5Compat>,由于工程的文件較多,逐個(gè)添加包含文件也是一個(gè)較大的工程,不知道是否有更好與更快的方法。
另外一種解決方法是使用QRegularExpression替代QRegExp。在使用到的QRegularExpression的文件中添加頭文件,#include <QRegularExpression>。同時(shí)QRegExpValidator使用QRegularExpressionValidator替代。
根據(jù)QT官方介紹QRegularExpression在功能和性能方面是對(duì)QRegExp的重大改進(jìn),應(yīng)在所有新代碼中使用。因此這里使用的第二種方法進(jìn)行修復(fù)以上問(wèn)題。
QString類沒(méi)有sprintf成員
QT6工程編譯使用到QString類時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)
error: 'class QString' has no member named 'sprintf'; did you mean 'asprintf'?
這個(gè)問(wèn)題比較簡(jiǎn)單,QT Creater已經(jīng)給了提示,詢問(wèn)是否使用asprintf替代,查看了幫助手冊(cè)說(shuō)明This function (asprintf) was introduced in Qt 5.5.根據(jù)建議替代就好了。
qrand類沒(méi)有定義
QT6工程編譯使用到qrand類時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)
error: 'qrand' was not declared in this scope; did you mean 'srand'?
這個(gè)問(wèn)題比較看似簡(jiǎn)單,QT Creater已經(jīng)給了提示,詢問(wèn)是否使用srand替代,結(jié)果使用srand替代后又提示
error: No matching function for call to 'srand'
查詢官網(wǎng)發(fā)得到的結(jié)果是qrand與srand均在QT5.15版本之后被拋棄了,在QT6版本中使用QRandomGenerator替代了。
QDateTime類沒(méi)有toTime_t成員
QT6工程編譯使用到QDateTime類時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)
error: 'class QDateTime' has no member named 'toTime_t'
QDateTime類中的toTime_t成員本來(lái)實(shí)現(xiàn)的功能是將當(dāng)前時(shí)間轉(zhuǎn)化為時(shí)間戳。查看QT6的QDateTime類的幫助文件,應(yīng)該是使用toMSecsSinceEpoch成員替代了。
到此這篇關(guān)于QT升級(jí)6.0以上版本遇到問(wèn)題以及解決方法的文章就介紹到這了,更多相關(guān)QT升級(jí)6.0以上版本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運(yùn)算符重載的實(shí)現(xiàn)
本文主要為大家講解一下三個(gè)C++中的運(yùn)算符重載,分別是賦值運(yùn)算符重載、關(guān)系運(yùn)算符重載和函數(shù)調(diào)用運(yùn)算符重載,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-06-06
kernel劫持modprobe?path內(nèi)容詳解
C++?JSON庫(kù)?nlohmann::basic_json::accept的用法解析
C語(yǔ)言簡(jiǎn)明清晰講解結(jié)構(gòu)體
Qt學(xué)習(xí)筆記之QPalette調(diào)色板類

