Wechsel von Qt 4 -> Qt 5

Verschiedenes zu Qt
Antworten
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Wechsel von Qt 4 -> Qt 5

Beitrag von Tilman Räger »

Hallo,

ich bin momentan daran, meine Anwendung von Qt4 auf Qt5 umzustellen. Aktuell bekomme ich beim Übersetzen einer GUI-Anwendung den Fehler beim Linken
undefined reference to QWidget::styleChange()
undefined reference to QWidget::enabledChange()

und 3 oder 4 weitere Funktionen. Im Netz habe ich jetzt einen Eintrag gefunden, das wären Qt3-Funktionen, die in irgendeiner zusätzlichen Bibliothek verwendet würden und man müsste diese Bibliothek neu kompilieren. Nur - meine Anwendung verwendet keine derartige Bibliotheken. Weiß jemand einen Tip, wie man den Fehler wegbekommt.

Gruss
Tilman (Räger)
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Wechsel von Qt 4 -> Qt 5

Beitrag von Tilman Räger »

Hallo,

Anscheinend habe ich eine (eine unter mehreren ?) Lösung gefunden (Google ist dein Freund :-) : Alle include-Direktiven der Form

Code: Alles auswählen

#incluce <QtGUI/Q...>
ersetzen durch

Code: Alles auswählen

#include <Q...>
und die Anwendung baut ohne weitere Probleme. Abgesehen davon, das ich nie verstanden habe, warum die Pfadangabe in ein und demselben Projekt mal erforderlich, mal nicht erforderlich war, ist der jetzt auftretende Fehler wenn die Angabe vorhanden ist, mir VÖLLIG unbegreiflich . Vielleicht hat ja jemand eine sinnvolle Erklärung dafür.

Gruss
Tilman
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Re: Wechsel von Qt 4 -> Qt 5

Beitrag von hilefoks »

Tilman Räger hat geschrieben:Alle include-Direktiven der Form

Code: Alles auswählen

#incluce <QtGUI/Q...>
Wenn das wirklich dein include zu QWidget war, dann ist das aus vielen Gründen falsch.
1. QtGUI gibt es nicht, es gibt nur QtGui (Ja, unter Windows geht auch qtgui,QTGUI,qTgUi oder sonst was... glaube ich. Ist trotzdem doof.)
2. Mit Qt5 wurden die Widget Klassen von QtGui nach QWidgets verschoben, d.h. der include müsste include <QtWidgets/Q...> sein. Auf den meisten Systemen kann man den Modul-Namen aber weglassen, wie du es in deiner Lösung gemacht hast.
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Wechsel von Qt 4 -> Qt 5

Beitrag von Tilman Räger »

Hallo,

bisschen spät, aber ich wollte doch noch mal auf die Antwort reagieren :-)

ad : QtGUI/...
Das war ein Fehler von mir hier im Forum :oops: . In meinem Quelltext stand definitiv korrekt QtGui. Problem war, das Qt4 manchmal nicht korrekt übersetzte, wenn man den Pfad nicht davorschrieb (über QtCreator) - seltsamerweise war es in manchen Quelldateien im selben Projekt nötig, in anderen nicht :?: . Normalerweise lasse ich qmake und den compiler selber suchen :-)
Das wirklich ärgerliche an der Sache war einfach die Fehlermeldung, die derart in die Irre führte ...

Gruss
Tilman
Antworten