C++/qt5

Aus SigVDR's Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Download Qt4/Qt5

Download Archiv Qt5/Qt5

Portierung von Qt4 nach Qt5

Die Unterschiede der API zw. QT4 und QT5 ist nicht sehr groß. Deshalb ist die Portierung nach QT5 auch wenig aufwändig und es ist leicht möglich, ein Projekt so zu erweitern, dass es mit beiden Versionen compiliert werden kann.

Eine Sammlung aller Probleme, die bei der Portierung dieser Projekte von Qt4 nach Qt5 aufgefallen sind.

  1. EasyStream

Projektdatei

Neue Modulnamen und eine neue Aufteilung der Klassen in den Modulen erfordert schon in der Projektdatei die erste Anpassung.

isEqual(QT_MAJOR_VERSION, 4) {
   DEFINES += QT4V
   QT      += core gui network webkit
}
isEqual(QT_MAJOR_VERSION, 5) {
   DEFINES += QT5V
   QT      += widgets core gui network webkitwidgets
}

Mit QT4V und QT45V werden einfach nur 2 Werte definiert, mit deren Hilfe im Quelltext .cpp / .h eine Fallunterscheidung erfolgen kann.

#ifdef QT4V ......
#endif
#ifdef QT5V ......
#endif

Modules

widgets -> für Widget basierende Applicationen
neu: QT += widgets
printsupport -> Das Druckermodul
neu: QT += printsupport
webkit
alt: QT += webkit
neu: QT += webkitwidgets

Include

QWebKit
neu: #include <QtWebKit>
entfernen: #include <QWebView>
entfernen: #include <QWebPage>

Klassen

QChar
QChar::toAscii() muss ersetzt werden -> QString::toLatin1() ??? ( ist aber lt. Doku noch enthalten).
QString
QString::toAscii() muss ersetzt werden -> QString::toLocal8Bit() ???
Meine Werkzeuge