MFC vs. QT

dürummann

Grünschnabel
Hi!

Ich kenn mich zwar mit C/C++ aus, aber die GUI-Programmierung ist für mich neuland....

Meine Frage daher: Ist es einfacher MFC oder QT zu lernen für den Einstieg? Was sind die grundlegenden Unterschiede?
Im Prinzip brauche ich eigentlich nur schöne Windows-Anwendungen mit Buttons, etc. Also wahrscheinlich eher MFC (ist ja von Microsoft). Oder ist es für einen Beginner doch besser mit QT zu beginnen?

Vielen Dank!
 
Hallo dürummann

Meine Frage daher: Ist es einfacher MFC oder QT Qt zu lernen für den Einstieg?
Ich habe mich nur mit Qt (Sprich "Cute", nicht "Q T") eingehender beschäftigt. Qt erfordert entweder den Qt Creator (eine IDE mit allem Bumms) oder eine recht mühselige Integration in VS. Die Legenden besagen, dass es auch Add-Ons für VS gibt, um Qt zu benutzen; allerdings habe ich nie eines gefunden, was wirklich nützlich war.
Also wenn du einer zusätzlichen Installation von einigen GBs nicht abgeneigt bist, dann ist Qt für den Einsteiger ebenso praktisch wie MFC.
Vom Programmieren her: Beide sind etwa gleich schwierig.

Was sind die grundlegenden Unterschiede?
Da geben sich beide nicht viel. MFC hat den Vorteil, entsprechende Tools in VS direkt installiert zu haben, Qt ist plattformunabhängig und mehr oder weniger der Branchenstandard für alle Applikationen, die auch auf *nix laufen sollen. Qt ist zudem nicht nur eine GUI-Library, sondern bringt noch Unicode-String-Management, Datenbanken, diverse Concurrencywrapper und Netzwerkklassen mit. Allerdings braucht Qt auch 6-8 DLLs, die man mit einem Programm gegebenenfalls mitverteilen muss (oder man kompiliert das Programm statisch, was eine recht grosse .exe zur Folge hat).
Beide sind Abstraktionsebenen und erlauben nur auf Umwegen eine direkte Interaktion mit der WinAPI.

Im Prinzip brauche ich eigentlich nur schöne Windows-Anwendungen mit Buttons, etc. Also wahrscheinlich eher MFC (ist ja von Microsoft)
Wenn du wirklich ausschliesslich in einem Windows-Ökosystem arbeitest, verliert Qt den Bonus der Plattformunabhängigkeit natürlich.
Du scheinst dir ohnehin schon recht sicher zu sein, MFC zu verwenden, und das ist sicher keine falsche Wahl. Qt kocht auch nur mit Wasser :)

Oder ist es für einen Beginner doch besser mit QT Qt zu beginnen?
TL;DR:
Wenn du keinerlei Ambitionen hegst, Programme für *nix zu schreiben, ist MFC vorzuziehen, da der Overhead kleiner ist.
Sobald du dir aber auch nur im Ansatz vorstellen kannst, deine Programme auch anderswo laufen zu lassen, ist MFC eher ungeeignet (oder du musst 2 Frameworks lernen).

Gruss
cwriter

/EDIT:
@sheel hatte in seinem Sticky MFC als "veraltet" gelistet, und tatsächlich ist MFC schon recht alt, allerdings gemäss Wikipedia noch aktiv entwickelt. Objektiv gesehen programmieren meines Wissens nur noch wenige Indie-Entwickler, vor allem aber grosse, Windows-gelockte Firmen noch in MFC. Von den Tutorials her ist Qt mit Abstand am extensivsten, MFC hat aber auch genügend Ressourcen. Persönlich war ich mit Qt immer zufrieden; allerdings habe ich MFC auch nicht gross angeschaut. Schlussendlich ist es wirklich deine persönliche Präferenz, die entscheidet.
 
Zuletzt bearbeitet:
WOW! Danke für die mehr als ausführliche Antwort :)

Geplant habe ich vorerst nur mich mit Windows-Applikationen zu beschäftigen, aber dass ich einmal für andere Betriebssysteme was machen will ist nicht ausgeschlossen.. Von daher werde ich mich eher für Qt entscheiden :)

Vielen Dank nochmal! Das hat mir jetzt wirklich weitergeholfen. Es spricht also gar nichts gegen Qt :) Davor habe ich mich irgendwie auf MFC festgenagelt ohne genau zu wissen warum!

LG
 
Hallo,
cwriter hat das Maste ja schon genannt, aber ich möchte doch noch etwas hinzufügen.

Falls du Visual Studio nutzt, dann lässt sich auch dort Qt recht einfach integrieren. Ich selbst nutze VS 2013, auch wenn es nicht dafür designt war (zu der Zeit wo ich es installiert habe) gibt es ein Add-In für VS 2012 welches sich dort auch relativ einfach installieren/portieren lässt. Vielleicht gibt es inzwischen schon ein neues. Aber auch der Qt Creator ist inzwischen extrem gut geworden, auch wenn VS natürlich immer das Flagschiff der IDEs bleibt.

Ich persönlich finde, dass der Einstieg in Qt einfacher ist als bei MFC aber wahrscheinlich ist das auch ansichtssache und davon abhängig wie fit du bereits in C/C++ bist. Ich denke auch das MFC eben nicht mehr so häufig verwendet wird, weil eben viele Anwendungen für rein Windows inzwischen mit C# gemacht werden und da die MFC eben keine Rolle spielt. Daher schätze ich, dass du mit Qt auch etwas mehr für die Zukunft lernen könntest, solltets du weitere GUIs programmieren wollen.

Beste Grüße und viel Erfolg wofür du dicha uch immer entscheiden wirst.
 
Zurück