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語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用
本文主要介紹了C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
文件編譯時(shí)出現(xiàn)multiple definition of ''xxxxxx''的具體解決方法
以下是對(duì)文件編譯時(shí)出現(xiàn)multiple definition of 'xxxxxx'的解決方法進(jìn)行了詳細(xì)的分析介紹,如也遇到此問(wèn)題的朋友們可以過(guò)來(lái)參考下2013-07-07
C++實(shí)現(xiàn)高校人員信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)高校人員信息管理系統(tǒng)項(xiàng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
C 語(yǔ)言基礎(chǔ)教程(我的C之旅開始了)[八]
C 語(yǔ)言基礎(chǔ)教程(我的C之旅開始了)[八]...2007-02-02

