怎样将Qt4程序迁移到Qt5

 时间:2026-02-13 13:35:49

1、在 Qt4 中,所有的图形界面类都包含在 QtGui 模块中。而 Qt5 将它们移到了  QtWidgets 模块中。因此,原来 Qt4 下的 Qt Gui 类型程序在 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 = new QDrag(this);

但是如果在 Qt5 中就会编译出错。因此要想通过编译,需要手动将以下头文件包含进来:

#include <QDrag>

怎样将Qt4程序迁移到Qt5

1、在 Qt5 中, 移除了 Qt4 中的部分 QTextCodec 函数。例如:

QTextCodec::setCodecForTr

QTextCodec::setCodecForCStrings

换句话说,也就是 QTextCodec 类没有这些函数了。

怎样将Qt4程序迁移到Qt5

2、那么,要在 Qt5 中显示中文,需要怎么做呢?

由于 Qt5 的源文件统一使用 UTF-8 编码,所以,如果只是想简单地显示中文,直接像下面这样写代码即可:

label->setText("你好!");

不过,在此提醒大家,最理想的方法是不在程序中直接使用中文,而是采用国际化的方法去实现,并且 tr 函数也不应该出现除英文外的其他语言字符。因此,最佳的实践方法是写成  label->setText(tr("Hello!")); ,再生成 qm 翻译文件,最后在程序运行时将其翻译成中文。

怎样将Qt4程序迁移到Qt5

  • “崩坏三挖矿”是什么意思
  • 卧龙苍天陨落怎么关闭看过的影片自动跳过
  • Windows超级管理器怎么检查坏点
  • 灵魂旅者Spiritfarer怎么蒸白饭
  • 怎么重置网络,重置网络命令是什么
  • 热门搜索
    成语故事手抄报 我阅读我快乐手抄报 禁毒手抄报资料 肺炎手抄报 端午手抄报图片 端午节的手抄报怎么画 五一节手抄报 重阳节手抄报简单字少 文明礼仪手抄报资料 英语圣诞节手抄报