Ich lerne C ++ seit ungefähr einem Monat und bevor ich weitermache, möchte ich diese mühsame Frage klären, die ich immer wieder habe. Ich weiß, was eine GUI ist, aber ich weiß nicht wirklich, wie sie funktioniert, und vielleicht Beispiele für beliebte?
Obwohl ich weiß, dass die Kommandozeilenprogrammierung das Nötigste ist, denke ich, dass es Spaß machen würde, mit einer GUI herumzuspielen.
Obwohl ich ungefähr 3 Millionen andere Fragen habe, speichere ich sie: D
Antworten:
Ich verallgemeinere einige GUI-Bibliotheken, aber auf einer sehr hohen Ebene ist das wichtigste Konzept, das Sie verstehen müssen, dass eine GUI ereignisgesteuert ist .
In einer Konsolenanwendung erfolgt Ihre Benutzereingabe normalerweise an bestimmten Punkten, die Sie definiert haben. Sie fordern Ihren Benutzer auf, Sie warten auf seine Eingabe, Sie berechnen etwas basierend auf dieser Eingabe. Einer der Hauptunterschiede ist, dass die Eingabe nur an einer Stelle erfolgt, Sie lesen Text von der Kommandozeile (
stdin
in C ++).In einer GUI-Anwendung haben Sie normalerweise mehrere Orte, an denen Eingaben erfolgen können, z. B. Schaltflächen, die unterschiedliche Aktionen oder Textfelder ausführen. Hier kommen Ereignisse ins Spiel. Wenn Sie beispielsweise auf eine Schaltfläche klicken, wird ein Ereignis ausgelöst. Dieses Ereignis muss von einem Ereignishandler behandelt werden. Dies ist normalerweise nur eine Methode, die ein Ereignisobjekt aufnimmt und aufgerufen wird, wenn ein solches Ereignis ausgelöst wird. Woher weiß Ihre Schaltfläche über den Ereignishandler? Du abonnierst normalerweise (oder hörst es dir an).
Hier ist ein "C ++ inspiriertes" Beispiel, dies ist kein tatsächlicher QT- oder C ++ - Code.
Wenn Sie den Button erstellen, registrieren Sie eine Instanz der MyClickHandler-Klasse für den Button.
Jetzt wird jedes Mal, wenn auf den Button
b
geklickt wird, eine Meldung angezeigt, die besagt, dass auf den Button Speichern geklickt wurde.Sie können sich vorstellen, dass eine GUI-Anwendung zwei Phasen hat:
Dies ist ein sehr einfaches Beispiel, aber ich würde empfehlen, mit jedem Framework, das Sie auswählen, ein Meldungsfeld anzuzeigen, wenn Sie auf eine Schaltfläche klicken.
Für das Framework gibt es viele: Im Falle von C ++ würde ich Qt wahrscheinlich empfehlen.
Ein letzter Ratschlag: Halten Sie sich von GUI-Designern fern, bis Sie wirklich wissen, was im Hintergrund passiert. Es ist nicht so schwer, einige einfache Beispiele zu schreiben und die Ereignisschleife zuerst zu verstehen und dann zu komplexeren Layouts überzugehen.
quelle
Jetzt ist die beste Zeit, um GUI-Programmieren zu lernen. Wie Sie wissen, C ++, würde ich empfehlen, sich mit QT. Eine großartige Dokumentation, eine riesige Anwenderbasis und viele Beispiele / Tutorials, aus denen man lernen kann.
quelle
Sie können auch mit Microsoft Visual Studio C ++ Express beginnen . Die IDE ist sehr benutzerfreundlich und benutzerfreundlich (und kostenlos!), Und Sie können sehr schnell Ihre ersten GUI-Anwendungen erstellen. So können Sie sich darauf konzentrieren, die Grundlagen der ereignisgesteuerten Programmierung zu verstehen - ein anderer Ansatz das musst du meistern.
Sie können auch direkt mit dem Erstellen von WPF-gesteuerten Anwendungen beginnen, aber ich würde zunächst mit Windows Forms beginnen. Dies ist eine Technologie, die weniger zu verstehen ist, da es sich nur um C ++ mit der Windows Forms-API von Microsoft handelt.
quelle
Vielleicht besser geeignet für StackOverflow, getaggt mit c ++; aber wie auch immer.
Schauen Sie sich ein paar davon bei Google an. Qt, WxWidgets, WinApi von TheForgers, Fltk ...
GUIs sind nicht so schwer zu bedienen, besonders wenn Sie bereits mit C ++ vertraut sind. Gehen Sie mit WxWidgets, wie ich finde; Qt ist etwas zu komplex für ein monatelanges Lernen. Sie können Wx in ein paar Stunden abholen.
quelle
Benutzer mögen keine komplizierten Dinge. Konsole ist eine komplizierte Sache, deshalb müssen Sie GUI-Anwendungen erstellen, die benutzerfreundlicher und einfacher zu verstehen sind. Dies ist der offensichtlichste Grund, den ich sehe. Sie können sich gtk oder Qt ansehen - diese beiden sind die beliebtesten.
quelle