Frage

Wir unterhalten derzeit eine Reihe von MFC-Anwendungen, die recht gut gestaltet sind, die Benutzeroberfläche sieht jedoch allmählich veraltet aus und ein großer Teil des Codes muss erheblich überarbeitet werden, um Duplikate und/oder Leistungsprobleme zu beheben.Wir verwenden eine ganze Reihe benutzerdefinierter Steuerelemente, die alle ihre eigenen Zeichnungen verwalten (alle mit MFC geschrieben).

Vor Kurzem habe ich mich intensiver mit Qt und seinen Vorteilen befasst (plattformübergreifend und unterstützt das, was man als „professioneller“ aussehendes Framework für die UI-Entwicklung bezeichnen könnte).

Meine Frage ist - Was wäre der beste Ansatz, um vielleicht auf das Qt-Framework umzusteigen??Funktioniert Qt gut mit MFC?Wäre es besser, einige unserer benutzerdefinierten Steuerelemente auf Qt zu portieren und nach und nach mehr und mehr in unsere vorhandenen MFC-Apps zu integrieren?(Ist das möglich?).

Jeder Rat oder jede vorherige Erfahrung ist willkommen.

War es hilfreich?

Lösung

In meinem Unternehmen nutzen wir derzeit Qt und sind sehr zufrieden damit.

Ich persönlich musste nie eine MFC-App auf die Verwendung des Qt-Frameworks umstellen, aber hier ist etwas, das für Sie von Interesse sein könnte:

Qt/MFC-Migrations-Framework

Qt/MFC-Migrations-Framework

Es ist Teil von Qt-Solutions. Das bedeutet, dass Sie zusätzlich zu einer Qt-Solutions-Lizenz auch eine Qt-Lizenz erwerben müssen.(bearbeiten: nicht länger)

Ich hoffe das hilft !

Andere Tipps

(Dies beantwortet Ihre spezifischen Fragen nicht wirklich, aber ...) Ich habe QT nicht persönlich verwendet, aber es ist nicht kostenlos für die kommerzielle Windows -Entwicklung.

Hast Du Dir angesehen wxWindows Was ist kostenlos?Schöner Artikel Hier.Nebenbei bemerkt: Wenn Sie eine einzige Codebasis für alle Plattformen wünschen, müssen Sie möglicherweise von MFC weg migrieren. Ich bin mir ziemlich sicher (jemand wird es korrigieren, wenn es falsch ist), dass MFC nur auf Windows abzielt.

Eine andere Möglichkeit wäre, sich das anzusehen Feature Pack-Update zu MFC in SP1 von VS2008 – es beinhaltet Zugriff auf neue Steuerelemente, einschließlich der Multifunktionsleisten-Steuerelemente im Office-Stil.

Es ist ein kniffliges Problem, und ich vermute, dass die Antwort davon abhängt, wie viel Zeit Sie haben.Sie erhalten ein viel besseres Ergebnis, wenn Sie Ihre benutzerdefinierten Steuerelemente nach Qt portieren. Wenn Sie die QStyle-Klassen für die eigentliche Zeichnung verwenden, erhalten Sie sofort themenfähigen Code.

Generell würde ich raten, in den sauren Apfel zu beißen und den ganzen Weg auf einmal zu gehen.Sicher, es kann länger dauern, aber die Alternative besteht darin, eine Ewigkeit damit zu verbringen, Code zu debuggen, der dies nicht tut ganz Mitspielen und am Ende mehr Code schreiben, um kleinere Inkompatibilitäten zwischen den beiden Systemen zu beheben (das habe ich schon gemacht).

Zusammenfassend rate ich also, einen Zweig zu starten, Ihren gesamten alten MFC-Code herauszureißen und ihn durch Qt zu ersetzen.Sie erhalten die Plattformunabhängigkeit (fast) kostenlos, und obwohl es eine Weile dauern wird, werden Sie am Ende ein viel schöneres Produkt erhalten.

Ein letztes Wort der Warnung:Stellen Sie sicher, dass Sie sich die Zeit nehmen, die „Qt-Methode, Dinge zu tun“ zu verstehen – in manchen Fällen kann sie ganz anders sein als der MFC-Ansatz – das Letzte, was Sie tun möchten, ist, mit Qt-Code im MFC-Stil zu enden.

Ich habe schon einmal ein Team geleitet, das so etwas gemacht hat (nicht MFC zu QT, aber die Prinzipien sollten funktionieren).

Zuerst dokumentierten wir die Dialoge und was ihre Eingaben, Kontrollen und Ausgaben waren.Außerdem erstellen wir mehrere Testfälle speziell für jede clevere Logik innerhalb der GUI.

Manchmal mussten wir einige Geschäftslogiken umgestalten, um eine saubere Benutzeroberfläche für die GUIs bereitzustellen, aber ehrlich gesagt, das ist die Art und Weise, wie es eigentlich hätte gemacht werden sollen.

Jetzt hatten wir eine Liste von GUIs, Eingaben, Ausgaben, Tests und einer Schnittstelle, zu der die gekapselte GUI passen musste.

Wir begannen Projekt für Projekt, gleichwertige GUIs zu den alten zu erstellen.Sobald wir das getan hatten, konnten wir die GUI an der Stelle einbauen, an der sich die alte befand, sie neu erstellen und testen.Zuerst sind wir viel gestolpert, aber wir haben schnell die häufigsten Fehler herausgefunden und behoben.Wir haben (glaube ich) 612 Dialoge durchlaufen, obwohl ein Team von etwa einem Dutzend von uns daran gearbeitet hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top