Qt4转Qt5遇到的问题

来源:互联网 发布:一号店在线客服软件 编辑:程序博客网 时间:2024/05/22 03:51

参考链接:

 

QtDoc 5.0: C++ API changes

https://qt-project.org/doc/qt-5.0/qtdoc/sourcebreaks.html

 

The Transition from Qt 4.x to Qt 5

http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5#846d0d314d8d4894bde364f45acf02e4

 

Qt Upgrade to 5.2

http://tabbycoder.com/index.php/blog-home/qt/32-qt-5-2-upgrade

 

 

 

Qt 5 编译问题:

 

  • 新增QtWidgets模块

·         

    • 头文件包含<QtWidgets>,代替原有的 <QtGui/QFrame>等。
    • .pro文件中Qt += widgets

 

  • 新增QtWetKitWidgets模块

·         

    • 头文件包含<QtWebKitWidgets>
    • .pro文件中Qt += webkitwidgets

 

  •  'WFlags' : is not a member of 'Qt'

·         

    • WFlags --> WindowFlags

 

  •  'QString::fromUtf16' : cannot convert parameter 1 from 'wchar_t *' to 'const ushort *'

·         

    • C-style cast转换: (const ushort *)

 

  • 'UnicodeUTF8' : is not a member of 'QApplication'

·         

    • 去掉“QApplication::UnicodeUTF8”参数

 

  • Q_WS_XXX废弃,造成.lib文件无法生成

·         

    • Q_WS_XXX 替换成Q_OS_XXX
    • Q_WS_X11替换成Q_OS_UNIX

 

  • QFtp不支持

·         

    • 下载QtFtp add-on
    • 编译并install到UDE Qt5.2目录
    • 头文件包含#include <QtHttp/qftp.h>
    • .pro文件中Qt += ftp

 

  • QHttp不支持

·         

    • 下载QHttpadd-on
    • 编译并install到UDE Qt5.2目录
    • 头文件包含#include <QtHttp/qhttp.h>
    • .pro文件中Qt += http

 

  • zip.obj unresolved external symbol

·         

    • 函数名称前加“z_”

 

  • 'setNumDigits' : is not a member of 'QLCDNumber'

·         

    • setNumDigits -->setDigitCount
  • QString::toAscii(),和fromAscii()废弃

·         

    • 使用QString::toLatin1(),和fromLatin1()
  • QString str = QApplication::translate("", "", 0, QApplication::UnicodeUTF8)去掉QApplication::UnicodeUTF8参数
  • QT_WA废弃

·         

    • 若需要时自行定义:

#if QT_VERSION >= 0x050000

#define QT_WA(unicode, ansi) unicode

#endif

  • 库名变更

·         

    • 版本号放在前面。如:QtCore4.dll --> Qt5Core.dll
    •         如:/DELAYLOAD:"Qt5Script.dll" \
              /DELAYLOAD:"Qt5ScriptTools.dll" \
              /DELAYLOAD:"Qt5XmlPatterns.dll" \
              /DELAYLOAD:"Qt5Xml.dll"
  •  QString::fromUtf16等函数,参数类型需做强制转换

·         

    • 使用(const ushort *)强制转换
  • QUrl::encodedHost()废弃

·         

    •  使用QUrl::toAce(url.host())
  • 函数参数HWND和WId之间需做强制类型转换

·         

    • 如:SetWindowPos((HWND)w->winId(), HWND_TOPMOST, 0, 0, 0, 0,SWP_NOMOVE | SWP_NOSIZE)
  • GetVolumeInformation函数参数需强制类型转换

·         

    • 如:GetVolumeInformation((LPCTSTR)drive, (LPTSTR)volumes, 256 - 1, NULL, NULL, NULL, NULL, 0 )
  • wslen函数参数需做强制类型转换

·         

    • 如:wcslen((const wchar_t *)volumes)
  • QStdWString废弃

·         

    • 使用std::basic_string<wchar_t>
  • QUrlQuery..queryItemValue()废弃

·         

    • 使用如下方式

QUrlQuery query(url);

return query.queryItemValue(key);

  • QUrlQuery..queryItems()废弃

·         

    • 解决方式同QUrlQuery..queryItemValue()问题。
  • QUrlQuery..setQueryItems()废弃

·         

    • 解决方式同QUrlQuery..queryItemValue()问题。
  • QPixmap alphaChannel()废弃

 

 

Qt 5 部署问题:

 

  • 下载QtHttp add-on,编译并部署
  • 增加qt.conf文件,指定qt路径

 

以上内容由别人家同事gxd整理










0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 美图t8屏幕不亮怎么办 美图m8卡机了怎么办 美图m6手机太卡怎么办 美图t8闪退怎么办 美图手机相机闪退怎么办 美图手机闪屏怎么办 魅族m6相册闪退怎么办 美图m6工厂模式怎么办 美图m6手机死机怎么办 美图m6s开不了机怎么办 美图手机m6进水怎么办 美图t8摔黑屏怎么办 美图屏幕点不动怎么办 朗动钥匙丢了怎么办 深圳小汽车摇号中签了怎么办 深圳摇号审核通过后怎么办 京东过保修期了怎么办 买的商业预付卡怎么办 壹钱包预付卡金额不足怎么办 美发店换老板原来预付卡怎么办 超市预付卡现超市停业怎么办? 利群购物卡丢了怎么办 利群金卡丢了怎么办 坐飞机洗漱用品超过规定怎么办 请律师团了解后怎么办 三星s9开不了机怎么办 三星手机开不了机了怎么办 安卓手机音响进水了怎么办 音响不读u盘怎么办 虎牌水壶显示f2怎么办 海尔冰箱门关不严没吸力怎么办 忘记京东金融账号怎么办 京东账号手机号已停用怎么办 京东账户忘了怎么办 京东登录名忘了怎么办? 京东已经发货了怎么办 苹果7p黑亮掉漆怎么办 淘宝卖家不肯退运费怎么办 健身付款收据丢了怎么办 收据丢了怎么办能退款 苹果售后不承认基带问题怎么办