怎样将Qt4程序迁移到Qt5

 时间:2024-11-02 23:33:41

目前,Qt的最新版本已经更新到了5.7。虽然,从Qt4过渡到Qt5,并没有像从Qt3到Qt4那样进行了翻天覆地的变化,但整体架构依然做了不小的调整,许多原本在Qt4下运行得好好的程序在Qt5下常常会通不过编译。那么,怎样才能将Qt4程序顺利迁移到Qt5呢?

工具/原料

Qt5

一、修改.pro文件

1、在Qt4中,所有的图形界面类都包含在QtGui模块中。而Qt5将它们移咦筋庑檗到了QtWidgets模块中。因此,原来Q墉掠载牿t4下的QtGui类型程序在Qt5下如果不作修改,通常是无法通过编译的。所以,如果想让原来的Qt4程序在Qt5下顺利运行,则需要在.pro文件中添加这么一句:greaterThan(QT_MAJOR_VERSION,4):QT+=widgets

怎样将Qt4程序迁移到Qt5

2、在上面的语句中,使用了一个测试函数greaterThan。它的意思是如果Qt的主版本大于4,则添加相应的模块。其中,greaterThan函数的语法为:greaterThan(变量名,值)该函数的作用是将变量与指定的值进行比较。注意,如果变量与值两者之间至少有一个不能转换为数值,则以字符串方式进行比较。

怎样将Qt4程序迁移到Qt5

二、更改包含的头文件

1、Qt5增加了一些新的头文件,并将以前QtGui模块包含的某些内容放到了新加的QtWidgets模块中。所以,我们需要对此进行修改。比如说,在Qt4中可以直接使用以下语句QDrag*drag=newQDrag(this);但是如果在Qt5中就会编译出错。因此要想通过编译,需要手动将以下头文件包含进来:#include<QDrag>

怎样将Qt4程序迁移到Qt5

三、和中文显示有关的代码

1、在Qt5中,移除了Qt4中的部分QTextCodec函数。例如:QTextCodec::setCodecForTrQTextCodec::setCodecForCStrings换句话说,也就是QTextCodec类没有这些函数了。

怎样将Qt4程序迁移到Qt5

2、那么,要在Qt5中显示中文,需要怎么呀贰硭眶做呢?由于Qt5的源文件统一使用UTF-8编码,所以,如果只是想简单地显示中文,直接像下面这样写代码即绺从萦米可:label->setText("你好!");不过,在此提醒大家,最理想的方法是不在程序中直接使用中文,而是采用国际化的方法去实现,并且tr函数也不应该出现除英文外的其他语言字符。因此,最佳的实践方法是写成label->setText(tr("Hello!"));,再生成qm翻译文件,最后在程序运行时将其翻译成中文。

怎样将Qt4程序迁移到Qt5

“崩坏三挖矿”是什么意思 卧龙苍天陨落怎么关闭看过的影片自动跳过 Windows超级管理器怎么检查坏点 灵魂旅者Spiritfarer怎么蒸白饭 怎么重置网络,重置网络命令是什么
热门搜索
芋头的图片 周末祝福图片 漫画公主图片 面码图片 笑看人生图片