? ? ? ? ?最近公司对大家的开发的硬件环境进行了升级,电脑主机的配置、显示器(两台大屏显示器)变得的逼格高多了。既然电脑上的开发环境都需要重装,就打算把开发环境也升级到最新版本,要用就用最新版本。下面对升级后的开发环境之一(VS2022+Qt 6.6.1?)遇到的问题总结一下。
?1,QRegExp?已取消,用QRegularExpression?替代,下面的图片注释的是QRegExp相相关函数
2,QDateTime?取消了toTime_t函数
?QDateTime::currentDateTime().toTime_t()? 我用QDateTime::currentDateTime().toSecsSinceEpoch()替代。
3,?qrand()?已取消,可以用功能更强大的QRandomGenerator替代。
至于QRandomGenerator的用法,大家可以查查Qt?助手。或百度也行。这里忘记截图了。
4,QMutex::Recursive?已取消,Recursive编译提示无定义。new Mutex参数可以填空。
5,QString?中的sprintf函数已不存在。
遇到时,可以用QString?自带的arg?来替代
6 ,?QWeakPointer?智能指针的data?函数已不存在。
我是用toStrongRef?函数替代
7,QPair?类中 qMakePair?用法。
开始博主是用注释用方法对mData?操作,mData?类型为QList<QPair<QByteArray,BroadcastFilter*>>,编译不过。感觉Qt 6.6.1?对编译的严格度提高了,遇到了好几个这样的问题。
8,如果你升级后,报如下错误
可以在文件?开头引入#pragma comment(lib,"ws2_32.lib"),就可以解决此问题。
9, QLayout?布局类的?setMargins?函数已不存在,可以用setContensMargins()?替代。
10,QPainter去除了QPainter::HighQualityAntialiasing,?博主用QPainter::SmoothPixmapTransform 替代。
所有老的工程,升级还会遇到好多问题。后面再陆续更新!大家如果也有其他发现,可以留言告诉博主谢谢。