Gleiche QWT Version von Qt4 und Qt5 zu benutzen



  • Hallo Zusammen,

    ich wollte alten Projekte (erstellt mit Qt 4) in Qt 5 zu migrieren.
    Zu diesem alten Projekte war auch QWT 6.1.1 benuzt.
    Meine Frage: Um die Qwt zu benutzen, muss ich die doch in Qt 5 integrieren.
    Ist das möglich die bereits bestehen QWT auch weiterhin in Qt 5 anwenden, oder soll ich lieber eine neue Version nehmen und in Qt 5 integrieren?

    Danke in Voraus


  • Moderators

    @Galilio

    Ja, du kannst Qwt auch in Qt 5 benutzen. Es gibt eine neuere Version Qwt 6.1.2. Die verwende ich zur Zeit mit Qt 5.4. Es sind eventuell ein paar kleine Anpassungen notwendig, wenn ich mich richtig erinnere.

    Ansonsten musst du die Umstellungen von Qt 4 auf Qt 5 generell für deine alten Projekte machen. Ist aber auch kein grosser Aufwand.



  • @koahnig
    Aber da muss ich doch QWT mit Qt 5 compilieren oder ?


  • Moderators

    @Galilio

    Ja, das ist notwendig.



  • Das heisst wenn es QWT 6.1.1 mit Qt4 compiliertist, muss ich doch die QWT 6.1.3 mit Qt 5 compilieren ?



  • Mit anderen Wort wenn es QWT 6.1.1 mit Qt 4 compiliert ist, könnte es nicht mit Qt 5 verwendet werden.
    Ist das so?


  • Moderators

    @Galilio

    Generell würde ich auf die gleiche Qwt version gehen. Egal welche Qwt version, du kannst diese nur mit der Qt lib version (4 oder 5), die auch zum kompilieren respektive linken verwendest hast.

    Wie oben beschrieben ,verwende ich Qwt mit Qt 5.4 und es könnte sein, dass ich diese Version auch mit anderen Qt versionen verwenden könnte. Allerdings wäre ich vorsichtig und würde generell Qwt mit der Toolchain kompilieren und linken die ich auch später verwenden möchte. Gerade bei manchen Compilern ist dies sehr wichtig. Für einen MS Compiler muss alles mit diesen Compiler kompiliert werden.



  • Ich habe für beide Qt jeweils ein QWT ordner erstellt, damit alle mögliche Konflikte vermieden werden.
    Der Qt 4 ist als PlugIn für Visual studio 2008 und der Qt5 ist Plugin für Visual Studio 2015.
    wenn ich aber den Qt4.7.4 command prompt öffne, dann sieht es etwas anders im vergleich zu Qt 5.7.

    Auf Qt4.7.4 sieht es so aus:

    Setting up a Qt environment...
    -- QTDIR set to C:\Qt\4.7.4
    -- Added C:\Qt\4.7.4\bin to PATH
    -- QMAKESPEC set to "win32-msvc2008"
    Setting environment for using Microsoft Visual Studio 2008 x86 tools.
    C:\Qt\4.7.4>

    Auf Qt5.7 sieht so aus:
    Setting up environment for Qt usage...
    Remember to call vcvarsall.bat to complete environment setup!

    C:\Qt\Qt5.7.0\5.7\msvc2015>

    Mir ist unklar warum soll ich den jedesmal den vcvarsall.bal aufrufen, obwohl ich schon gemacht habe.
    Noch eine sache wenn ich die datei.ui in Visual studio 2015 unter help dann About qt erscheint mir die Qt version 4.7.4 obwohl es Qt5.7 sein muss.



  • Hat keine eine Idee?


  • Moderators

    @Galilio

    Etwas mehr Geduld. Innerhalb einer Stunde eine Antwort zu bekommen, ist auch im englischen Teil sehr schnell.
    Im deutschen Teil dauert es generell länger, da wesentlich weniger User mit Deutschkenntnissen im Forum sind. Alle machen das hier auch noch freiwillig ohne Bezahlung.

    Die Batchdatei setzt das Environment auf. Du kannst schlicht und einfach nicht beide gleichzeitig für Qt4 und Qt5 aufsetzen. Ich würde dir eher noch eine zusätzliche Batch-Datei zum Aufsetzen für Qt 4 empfehlen und das Ganze aus dem default-Setup entfernen. So kann es dir passieren, dass du nach dem Starten des Batch für Qt5 noch Reste für Qt4 hast. Damit wird man meist nicht glücklich.

    Es ist schon eine ganze Weile her, da habe ich mich für den Umstieg auf den Qt creator entschieden. Wenn ich mich richtig erinnere, war einer der Gründe das parallele Handling von Qt4 und Qt5 unter VS. Das ging damals nicht. Vielleicht liege ich falsch und es geht heute, aber ich denke du hast da generell schlechte Karten.

    Die parallele Installation von Qt 4 und Qt 5 während der Umstellungsphase hat einige Vorteile und ich würde dir dies unter Qt creator empfehlen. Dort kannst du mehrere Kits parallel installieren und nacheinander verwenden. Wie du schon festgestellt hast, brauchst du diverse Umgebungssettings für die eine oder die andere Variante. Mit VS müsstest du wahrscheinlich jedes Mal deine gesamt Umgebung mittels Batch umkofigurieren (inklusive Reboot). Mit Qt creator sind es ein paar Mausklicks.



  • Hallo und danke für die Antwort.
    Da ich paralle zwei versonen "Qt4 und Qt5" auf dem PC habe ist nur temporär.
    Wir wollen den umstieg entgültig auf Qt5 schaffen, aber da wir mehreren productive Projekte haben und die neben Effekte
    nicht vorsehbar sind wollen wir erstmal beide Versionen der Qt gleichzeitig testen.

    Es gibt eigentlich eine andere problem und zwar ich kann der QWT nicht auf dem Visual Studio 2015 einrichten.
    Das Einrichten ist eigentlich genau so wie in Visual Studio 2008. Das einzige unterschied ist die QWT pathund natürlich die Qt Version.
    Alle Include der QWT library können nicht eingebunden werden.
    Ich habe eigentlich den Link und die nötige Include eingerichtet aber trotzdem geht es nicht



  • @koahnig said in Gleiche QWT Version von Qt4 und Qt5 zu benutzen:

    Mit VS müsstest du wahrscheinlich jedes Mal deine gesamt Umgebung mittels Batch umkofigurieren (inklusive Reboot).

    Kann du bitte noch etwas konkrete beschreiben: Wie kann das tun?
    Danke und sorry noch mal


  • Moderators

    @Galilio

    Momentan wirst du wahrscheinlich nur Qt 4 in VS ohne Probleme verwenden können. Darauf deutet deine Ausgabe vom command prompt hin.
    Eventuell nicht einmal das. Ich sehe gerade den Hinweis auf VS 2008 und VS 2015. Ich glaube das du noch mehr Probleme. Wenn ich mich richtig erinnere, kannst du nur eine Version mit Qt verwenden. Wenn du auch noch VS verschiedene Version mischt, wird es aus meiner Sicht noch komplizierter. Dies liegt aber an VS und nicht an Qt.

    Meine Ratschläge:
    Wenn du überhaupt eine Chance mit VS als Entwicklungsumgebung haben möchtest, dann solltest du dich für eine Version entscheiden. Entweder VS 2008 oder VS 2015.

    Wahrscheinlich kannst du weiterhin mit dem Compiler von VS 2008 und Qt 4.7.4 arbeiten und ausserdem die Kombination VS2015 und Qt 5.7 verwenden. Allerdings nur unter Qt creator.

    Offensichtlich hast du ein paar Settings im Environment, die das Ganze für VS2008 mit Qt 4.7.4 aufsetzen. Für VS2015 und Qt 5.7 müsste alles wieder zurück gesetzt werden und durch settings für VS2015 und Qt 5.7 ersetzt werden. Ob dies schon alles in vcvarsall.bat geschieht, weiss ich nicht.



  • @koahnig

    Es sieht leider so aus.
    Ich werde so vorgehen "deine Ratschläge umsetzen"

    1. Qt 4 löschen
    2. Visual Stdio 2015 löschen und neue installieren um mögliche neben effekte zu vermeiden
    3. Qt 5.7 als Plugin für VS2015 anwenden
    4. Qwt 6.1.3 in Visual Stduio2015 einrichten

    Gibt es noch worauf ich noch zu achten habe?
    Ich hoffe so kann ich eine saubere Entwicklungsumgebung haben.

    Ich danke es dir


  • Moderators

    @Galilio

    Mir fällt direkt so nichts ein.



  • Hi,

    ich habe wie gesprochen:

    1. Qt4 gelöscht
    2. Visual studio 2015 desintalliert und neue installiert
    3. Qt5.7 desintalliert und neue installiert
      und wollte gerade den QWT in Qt einrichten.
      Bemerkung:
      Wenn ich den Qt5.7 Command prompt öffne habe ich folgende:

    **Setting up environment for Qt usage...
    Remember to call vcvarsall.bat to complete environment setup!

    C:\Qt\Qt5.7.0\5.7\msvc2015>**

    was fehlt noch?
    Danke


  • Moderators

    @Galilio

    Kannst du mit Qt 5 im VS2015 arbeiten?
    Dann brauchst du wohl nichts mehr zu machen.

    Ich habe schon mehrere Jahre nicht mit VS und Qt gearbeitet. Es waren damals die Versionen VS2005 und Qt 4.7 glaube ich. Danach habe ich auf Qt creator gewechselt und mir eine 64 bit MinGW für Qt libs erzeugt. Ich hätte mir eine neue Version von VS beschaffen müssen, da vsaddin nicht mehr mit VS2005 lief. Falls ich mich richtig erinnere.
    Aus meiner Sicht haben die VS-compiler einen entscheidenen Nachteil wegen der Inkompatibilität der libs und objs zwischen den Versionen. Ausserdem wird einiges aus dem Environment (Runtime-Umgebung) verwendet.

    Abschliessend könntest du vielleicht noch vsvarsall.bat aufrufen. Ich weiss einfach nicht was dort heutzutage passiert. Vielleicht wird alles mit dem Aufruf so gesetzt, dass die Meldung nicht kommt.

    Theoretisch könntest du die vsvarsall.bat mit jedem booten aufrufen bzw schauen was gesetzt wird. Allerdings wird dich das mit jedem Update der Qt libs von neuem ärgern. Daher rate ich eher ab.

    Tut mir Leid aber bei VS bin ich am Ende meines Wissens.



  • Nicht wirklich.
    Probelem ist, dass ich die QWT nicht einbinden kann.
    Es ist irgendwie für Visual Studio unbekannt, da es die QWT library nicht richtig eingebunden sind.
    die moc File werden erstellt aber die nötige include von Visual studio könnten nicht geöffnet werden.
    Warum ?
    Weiss ich nicht.



  • QWT habe ich richtig mit der Qt 5.7 compiliert "Mit ach und krach"
    Dann wollte ich einen Dummy projekt (wo ich qwt Library benutzen) erstellt.
    komisch ist, ich kann .ui Datei nicht mit dem Designer öffnen Visual Studio bleibt so hängen.
    Meine verdacht liegt an der qtenv2.bat : muss ich hier was anpassen?

    Ich bin einfach heuten den ganzen Tag damit beschäftigt und komme ehrlich gesagt nicht wirklich weiter...
    man...


  • Moderators

    @Galilio
    Ich weiss es einfach nicht, sorry.

    Ich habe einen Aufruf bei den Moderatoren gestartet. Ich weiss nicht ob da jemand Deutsch kann und auch Ahnung von VS hat. Es ist ein Versuch.

    Ansonsten kann ich dir nur empfehlen deine Probleme in Englisch im Englischen Forum zu veröffentlichen. Da hat es wenigstens ein paar VS-Nutzer.

    Eventuell kannst du es auch noch auf der Mailing von qwt probieren.



  • Hallo,

    ich kenne mich jetzt nicht mit QWT speziell aus, aber die qtenv2.bat erzeugt lediglich eine Umgebung für die Qt Entwicklung. Es kann ja auch gar nicht wissen, was sonst noch eingebunden werden muss. Dies ist ein elementarer Unterschied zu Linux, wo es mehr oder weniger standardisierte Verzeichnisstrukturen gibt.

    Ergo, ist meine Vermutung, dass QWT selbst in dem Projekt bekannt gemacht werden muss (INCLUDEPATH, DEPENDPATH, LIBPATH +=...).

    Ggf hat QWT selbst noch einen Install step. In dem Falle wäre meine Vermutung, dass es sich in das Qt Verzeichnis installiert. Aber wie bereits gesagt, ich kenne mich mit QWT nicht aus.



  • Problem ist gelöst in dem diese Datei "Qt5WebEngineWidgets.dll" gelöscht wird.
    Vorschalge kam von :
    https://forum.qt.io/topic/71702/qt-designer-doesn-t-work/10
    Danke


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.