Qt4到Qt5

来源:互联网 发布:软件下载网站排名 编辑:程序博客网 时间:2024/05/07 10:26
vs2010+sp1
1.涉及到QtGui头文件的替换成QtWidgets,并且pro中加入:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
2.当前目录的子目录包含父目录的头文件应该是:#include "../test.h",如果想这样写#include "test.h",需要在
pro中加入:INCLUDEPATH += $$PWD
3.QtMsgHandler替换为QtMessageHandler
4.Log4Qt替换成新版本使其支持Qt5:https://github.com/devbean/log4qt/tree/master/src/log4qt
5.qftp, qhttp在Qt5里面去掉了,如果不想改动自己代码的话,需要在网上下载自己编译。
6.toAscii,fromAscii改为 toLatin1,fromLatin1
7.Qt5支持json,去掉qjson库,代码要改写。
10.QWebFrame,QWebView,pro中加入webkitwidgets有这个模块widgets就不需要了,头文件
#include <QtWebKitWidgets/QWebFrame>
#include <QtWebKitWidgets/QWebView>
11.windows.h该为qt_windows.h
12.QApplication::translate去掉最后的参数QApplication::UnicodeUTF8
13.Q_EXPORT_PLUGIN,Q_EXPORT_PLUGIN2宏过时了,
使用新宏Q_PLUGIN_METADATA,参考:http://blog.csdn.net/tujiaw/article/details/37989519
14.QUrl改用:
QUrlQuery params;
params.addQueryItem("ids",memberList.join(","));
data = params.query(QUrl::FullyEncoded).toUtf8();
15.去掉qxtglobalshortcut
16.Project WARNING: CONFIG+=qaxcontainer is deprecated. Use QT+=axcontainer instead.
17.QPrinter替换为pro加入printsupport
18.QString docDir = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
替换为:QString docDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
19.winEvent替换成nativeEvent
20.如果ui文件没有生成对应的ui_**.h头文件可以用,qt命令行工具到执行目录下执行:uic.exe name.ui -o ui_name.h
21.vs2010+sp1解决中文乱码问题:#pragma execution_character_set("utf-8"),注意其源码文件如果含中文要改成ansi或unicode
22.支持QJson:
namespace json
{
    QVariantMap toMap(const QByteArray &val)
    {
        QJsonParseError jError;
        QJsonDocument jDoc = QJsonDocument::fromJson(val, &jError);
        if (jError.error == QJsonParseError::NoError) {
            if (jDoc.isObject()) {
                QJsonObject jObj = jDoc.object();
                return jObj.toVariantMap();
            }
        }
        QVariantMap ret;
        return ret;
    }

    QString toString(const QVariantMap &val)
    {
    QJsonObject jobj = QJsonObject::fromVariantMap(val);
    QJsonDocument jdoc(jobj);
    return QString(jdoc.toJson());
    }
}
23.TabWidget标签隐藏
ui->tabWidget->findChildren<QTabBar*>().at(0)->hide();
24.有时候resizeEvent执行比构造函数还早???
25.Qt creator生成obj中间文件
win32:CONFIG(release, debug|release): OBJECTS_DIR = $$PWD/release
else:win32:CONFIG(debug, debug|release): OBJECTS_DIR = $$PWD/debug
0 2
原创粉丝点击