Gui C++, Programm/Tutorial gesucht, Windows 7

nemos

Lt. Junior Grade
Registriert
Sep. 2007
Beiträge
412
Hallo,
ich suche nach einem Programm oder Tutorial, mit dem ich GUI in C++ erzeugen kann.
Ich kann Terminal-Programme in C++ schreiben.
Ich kann Gui in JAva schreiben.

Allerdings kann ich keine Programme mit GUI in C++ schreiben.
Bit jetzt habe ich viele Tutorials und Bücher gefunden, doch die alle beschäftigen sich entweder mit:
"Wie öffne ich ein neues Projekt in einer Entwicklungsumgebung" ohne darauf anzugehen, wie ich GUI mit dem Programm verbinden lann oder wie fange ich messages von Gui in meinem Main-Programm ab
.
oder mit:
"'Wie nutze ich Win32-Api" mit hunderten von Seiten.
.
Wer hat eine schöne Idee?

Edit: Anleitung für QT: http://sector.ynet.sk/qt4-tutorial/
 
Zuletzt bearbeitet:
C++ bringt kein GUI-Framework mit. Erste Entscheidung ist also, dass du dich für eine GUI entscheidest. Ein wenig mehr Eigeninitiative hätte ich allerdings bei jemandem, der von sich behauptet, mit Java GUIs zu erstellen, schon erwartet... oder du sagst wenigstens, welchen C++-Compiler du nimmst...
 
nemos schrieb:
Hallo,
ich suche nach einem Programm oder Tutorial, mit dem ich GUI in C++ erzeugen kann.
Ich kann Terminal-Programme in C++ schreiben.
Ich kann Gui in JAva schreiben.
...
Wer hat eine schöne Idee?

Ich würde, wenn das was "Ernsteres" werden soll, grundsätzlich qt4 nehmen. Hier hast Du eine schöne Einführung (gegoogelt).
 
1668mib schrieb:
C++ bringt kein GUI-Framework mit. Erste Entscheidung ist also, dass du dich für eine GUI entscheidest. Ein wenig mehr Eigeninitiative hätte ich allerdings bei jemandem, der von sich behauptet, mit Java GUIs zu erstellen, schon erwartet... oder du sagst wenigstens, welchen C++-Compiler du nimmst...
Viele Seiten haben QT4 empfohlen, doch die verlinkten Seiten haben immer auf kommerzielle Version http://qt.digia.com/Product/ geschickt.

In java ist es einfach. Ich nutze einen grahipschen GUI-Builder, passe den erzeugten Quelltext geringfügig an und zapfe einzelne GUI-Elemente an.
 
Zuletzt bearbeitet:
nemos schrieb:
In java ist es einfach. Ich nutze einen grahipschen GUI-Builder, passe den erzeugten Quelltext geringfügig an und zapfe einzelne GUI-Elemente an.

Das geht auch in qt4. Das heisst dort Qt-Designer. Die nichtkommerzielle Version ist unter http://qt-project.org/ zu finden.
 
Ich muss es für eine Nachhilfe vorbereiten, ich habe freie Wahl welchen Compiler ich nutze. Nur muss es C++ sein und GUI haben.
.
Vielen Dank für ihre Hilfe!
 
Zuletzt bearbeitet:
Spricht bisher nichts gegen QT. Die Doku ist eine der besten die ich bisher gesehen / gelesen habe und man ist kaum an eine bestimmte Plattform gebunden, was die GUI angeht ;)
 
nemos schrieb:
Ich kann Gui in JAva schreiben.
nemos schrieb:
In java ist es einfach. Ich nutze einen grahipschen GUI-Builder[...]
Finde den Fehler. :p Es ist nämlich gar nicht einfach ein halbwegs vernünftiges GUI zu bauen.

nemos schrieb:
Ich muss es für eine Nachhilfe vorbereiten
Bei Hausaufgaben soll hier nicht geholfen werden und die gegebenen Hinweise reichen ja auch schon.
Kann mir auch nicht vorstellen, dass dir jemand so eine Aufgabe stellt, ohne es dir beigebracht zu haben. Oder eben es ist als Knobelaufgabe gedacht und erfordert viel Eigeninitiative.
 
Tumbleweed schrieb:
Finde den Fehler. :p Es ist nämlich gar nicht einfach ein halbwegs vernünftiges GUI zu bauen.
Ich danke Ihnen, dass Sie den Rahmen meiner Frage erweitern und damit eine Diskussion versuchen zu entfachen, die nix mit dem Thema zu tun hat.

Tumbleweed schrieb:
Bei Hausaufgaben soll hier nicht geholfen werden und die gegebenen Hinweise reichen ja auch schon.
Versuchen Sie damit andere Menschen zu demotivieren? Oder deuten Sie damit an, dass Sie den Recht haben zu entscheiden, wann einem geholfen werden darf und wann nicht?
.
Tumbleweed schrieb:
Kann mir auch nicht vorstellen, dass dir jemand so eine Aufgabe stellt, ohne es dir beigebracht zu haben. Oder eben es ist als Knobelaufgabe gedacht und erfordert viel Eigeninitiative.
.
Nun, ich gebe die Nachhilfe :)
Hintergrundwissen: Knöbelaufgaben kann man nur dann stellen, wenn sicher ist, dass der Kunde entweder genug Motivation oder zur Lösung notwendiges Wissen hat.
 
Zuletzt bearbeitet:
Du gibst Nachhilfe in etwas von dem du keine Ahnung hast? Cool.
Eigentlich sollte der Nachhilfegebende das was er lehrt vollständig draufhaben und nicht in einem Forum nachfragen müssen was er sich anschauen sollte...
 
DaysShadow schrieb:
Du gibst Nachhilfe in etwas von dem du keine Ahnung hast? Cool.
Eigentlich sollte der Nachhilfegebende das was er lehrt vollständig draufhaben und nicht in einem Forum nachfragen müssen was er sich anschauen sollte...

Wenn man ein sehr guter Nachhilfelehrer ist, dann kann man auch Nachhilfe in dem Fach machen, von man selbst nicht viel versteht.
Allerdings klappt es nur bei Nebenfächern, wo von dem Student kein wirkliches Verständniss verlangt wird. Vor allem bei Programmierung gibt es oft Problem, dass ein Kunde zwar versteht (dank der Vorlesung) wie einzelne Elemente zu machen/plazieren sind, aber keinerlei Ahnung hat, wie und warum diese Elemente so plaziert wurden. Konkretes Beispiel: Ein Kunde wusste genau wie die Funktionen verwendet, aber nicht wusste, dass deren Name frei gewählt sein könnte. Der Kunde hatte deswegen große Unsicherheit. Ich erkannte dieses Problem, wiederholte 10 mal, dass der Name frei gewählt werden kann. Und nach einer Woche, im nächsten Termin hat der Kunde mich gefragt: "Achso, deswegen haben Sie letztes mal gesagt". Der Kunde hat dann auch bestanden.
Übrigens, ich war sein zweiter Nachhilfelehrer. Der erste war ein Freak, der alle Aufgaben sofort lösen konnte, aber wohl nix erklären konnte. (Die Sprache war C)
.
In diesem konkreten Fall geht es darum dem Kunde die grundlegende Ideen der Programmierung beizubringen, so dass ich vor allem den klaren Aufbau und Ideen die dahinter stecken erstmal vermitteln werde.
.
Ich habe oft erlebt, dass ein Mensch der sich perfekt mit einem Fach auskennt, sehr schlechte Nachhilfe macht, da er sich keine Gedanken macht, wie einem Menschen neues Wissen vermittelt werden kann.
 
Zuletzt bearbeitet:
Grundlagen der Programmierung anhand des Zusammenklickens einer graphischen Oberfläche?
Ist das nicht etwas der falsche Ansatz?
Ich meine, ich bin nicht der Schüler und auch nicht der Lehrer, aber wenn man das richtig machen will braucht es doch das Wissen was da nun passiert wenn ich einen Button da platziere und ein Textfeld da und wie ich dazwischen kommunizieren kann usw. usf.

Und Nachhilfe geben wenn man selbst nicht viel davon versteht...? Davon halte ich ehrlich gesagt nicht viel.
Da kann derjenige ja noch so nett, freundlich und gut lehren können, wenn er das was er lehrt falsch lehrt weil er eben selbst nicht wirklich drin ist, dann kann das doch nie was werden was danach Früchte beim Schüler trägt.

Edit: Gibt es wirklich Nebenfächer die das Gestalten einer GUI ohne Vorkenntnisse als Programmiervorlesung ausgeben? Ist ja grausig^^
 
Ich bin hauptsächlich auf Studenten spezialisiert.
DaysShadow: Ein Kunde hat ein Projekt mit graphischer Oberfläche. Der Projekt muss abgegeben werden. Der Kunde zahlt mehr als 40 euro pro Termin. Da wird der Kunde kein Verständniss haben, wenn ich von Adam und Eva anfange.
Ich habe vor zu zeigen, wie GUI mit dem Builder gemacht werden kann. Wie einzelne Elemente von Gui im eigentlichen Programm angesprochen werden können( objektName) , was in der Maindatei immer sein muss und was immer angepasst werden muss. Dann werden wir einzelne Steuerungsfunktionen durchgehen. Danach ist Termin zuende.
 
Ich falle vom Stuhl.

Ich muss gestehen, als ich meine Antwort verfasste, habe ich für eine Sekunde darüber nachgedacht, ob du (ich bleibe mal beim Du, das ist so üblich in Foren) der Schüler oder der Lehrer bist. Dann dachte ich mir - nein, der Lehrer kann er wohl nicht sein, wenn er nach so grundlegenden Dingen in einem Forum fragen muss.

Muss mich da DaysShadows Unverständnis anschließen. Wenn man keine Ahnung hat und nicht einmal den Hintergrund hat, um sich das selbst beizubringen, dann sollte man nicht lehren. Das noch damit zu begründen, dass der Kunde ja gut zahlt, schlägt dem Fass wohl noch den Boden aus. Ich schäme mich jedes Mal, wenn ich Leuten, die Fachwissen von mir erwarten, nur mit Halbwissen dienen kann.

Aber passt schon. Ist nicht das erste Mal, dass ich sowas sehe, obwohl ich noch nicht sonderlich alt bin. Es scheint heute so üblich zu sein, dass man anderen gegenüber vorgibt, man hätte Ahnung von der Materie und hinterrücks muss man dann in Foren um Hilfe bitten. Ich habe auch schon Leute Fachbücher (auch Programmierung) schreiben sehen, über deren realitätsfremden Code ich nur den Kopf schütteln kann.

Und ja, ich möchte durchaus andere davon abhalten dir zu antworten, wenn ich davon ausgehen muss, dass das deine Hausaufagabe ist. Das entspricht nämlich den Regeln hier. Da du aber anscheinend tatsächlich der Lehrer bist, möge man dir gern helfen.

Über GUI-Builder brauche ich keine Diskussion aufmachen. Das ist weitreichend bekannt, was solche Tools für Quark produzieren und spätestens wenn es irgendwo kracht, steht der Benutzer im nächsten Forum und fragt, warum sein Code nicht läuft. Speziell bei Java sage ich nur EDT.

nemos schrieb:
Ich habe oft erlebt, dass ein Mensch der sich perfekt mit einem Fach auskennt, sehr schlechte Nachhilfe macht, da er sich keine Gedanken macht, wie einem Menschen neues Wissen vermittelt werden kann.
Damit hast du übrigens absolut recht.
 
Na das klingt ja nach purer Inkompetenz seitens des Kunden :D
Wie will der Kunde denn ohne Ahnung Inhalt in sein Projekt bringen bzgl. der Logik usw.? Dem wird doch das Projekt, gerade in C++, regelmäßig um die Ohren fliegen?

Vor allem kommt es ja dann auch drauf an womit er das tun soll.
Nur C++ ist vorgegeben und der Rest egal?
Nur Windows oder auch Linux und/oder Mac OS X?

Alles ziemlich schwammig.

Auf Windows allein könnte Visual Studio 2010 wahrscheinlich das Beste sein, da kann man auf jeden Fall das Fenster zusammenklicken und den Komponenten ihre Logik geben.
Kostet aber ganz gut Geld wenn das Projekt kommerziell ist, da man dann die volle Version braucht und die Express-Versionen, mit denen man es lehren könnte, nicht mehr reichen.

QT wird wohl auch gehen, wird relativ oft genutzt und ist eben Multiplattformfähig.
Wäre evtl. sogar besser.
QT gibts hier: http://qt-project.org/downloads

Am besten auch mal anschauen:
http://de.wikipedia.org/wiki/Qt_(Bibliothek)

@Tumbleweed: Da sind wir so ziemlich einer Meinung, gut zu wissen, dass man nicht alleine so denkt ;)
 
Zuletzt bearbeitet:
Gut, dank blöderidiot konnte ich QT besorgen.
Ich habe gerade gelernt, wie ich durch GUI erzeugte Events gezielt reagieren kann. Muss nur noch lernen, wie ich mit dem Event übergebene Werte lesen kann und die Inhalte der GUI-Elemente verändern kann( z.B. in "Text Edit")

@DaysShadow: es ist äußerst schwammig. In dem Vorlage-Lastenheft wurde zwar spezifisiert, was gemacht werden soll, und wie Programm reagieren soll, aber sehr wenig über die Ungebung.
Habe bereits einige Ideen: Zum Beispiel soll unter anderem ein Editor realisiert werden, der per Drag and Drop einen UML-Diagramm erzeugen kann. Dieses Drag and Drop denke ich durch folgendes zu realsieren: Ich speichere den Drückort und den (mit gehaltener Maustaste) Los-Ort. Dann schlage ich in den gespeicherten Koordinaten aller Objekte und kann dann entscheiden, welcher UML-Element wo plaziert wurde.
Ergänzung ()

Tumbleweed schrieb:
Ich schäme mich jedes Mal, wenn ich Leuten, die Fachwissen von mir erwarten, nur mit Halbwissen dienen kann.
Lieber kein Halbwissen. Wenn der Kunde etwas fragt und ich weiss es nicht, aber ich weiss, dass dies eine wirchtige Frage ist, dann sage ich lieber: "Da muss ich nachschlagen."
Ein großer Fehler, den man in der Nachhilfe (vor allem am Anfang) machen kann:
"Man versucht krampfhaft allwissend zu wirken und lügt deswegen wie gedrückt"
Nee, ein paar Kleinigkeiten darf man durchaus nicht wissen.
 
Zuletzt bearbeitet:
Dass kein Mensch allwissend ist, ist klar. Darum geht es aber auch gar nicht.

Nimm es mir nicht übel (das "du" ist in Foren durchaus üblich und kein Zeichen für fehlenden Respekt oder so), aber für mich klingt es hier leider ein wenig, wie wenn ein Rollstuhlfahrer einem das Laufen beibringen will.

Und "nachschlagen" und "ich mach nen Forum-Thread auf" ist für mich ehrlich gesagt auch nicht ganz das selbe.
 
Ich habe 3-4 Stunden lang nach passendem Buch oder Tutorial gesucht. (Dabei 6-7 Bücher gefunden, und mehrere alte Tutorials die alles auf kommerzielle Version von QT gezeigt haben. Mir war bekannt, dass QT von Nokia gekauft wurde, aber nicht bekannt, dass es auch freie Version von QT existierte. Ich habe Visual Studio 2010 installiert doch keinerlei Anleitung gefunden, wie Gui mit dem eigentlichen Programm zu verbinden ist)
Danach habe ich diesen Thread aufgemacht und sofort den Link zu Qt SDK bekommen. Dadurch (Keywords) konnte ich eine gute Anleitung im Internet finden und kann alleine weiter lernen :)

Insofern hat sich dieser Thread für mich gelöhnt.

Ich bedanke mich bei @blöderidiot und @SymA für wertvolle Informationen. Diese Informationen waren so offensichtlich, dass die einfach nicht zu finden waren. Ohne diese 2 Personen hätte ich eine funktionierende Entwicklungsumgebung wohl kaum gefunden.
Danke.

@1668mib: ("Du oder Sie" ist mir egal ^^ Ein Lehrer bin ich auch nicht, ich verdiene mein Geld zur Zeit halt mit Nachhilfe)
Für dich klingt es seltsam, weil du diese Situation idealisiert betrachtest.
Konkretes Beispiel:
Situation: "Die fliegende Insekten im Haus belästigen die Einwohner"
Deine Reaktion: "Die Größe der Insektenpopulation hängt von der Jahreszeit, Niederschlägen und weiteren Faktoren ab".
Meine Reaktion: "Kaufen Sie Fliegennetze und bringen sie an alle Fenster an"
:)
.
Wenn ich einen Projekt mit graphischer Oberfläche in einzelne Bereiche zerlegen würde:
0) Welche Informationen müssen gespeichert werden.
1) Algorithmen, um bestimmte Aufgaben zu erledigen: z.B. Aus einem binären Baum einen balansierten binären Baum zu machen, Traveler-Problem,..
Damit habe ich keine Probleme, kann laufen ^^
2) Sinnvolle Aufteilung des Programms in möglichst abgekapselte Klassen/Module. Bestimmung sinnvoler Interfaces.
Auch das kann ich recht gut.
3) Implementierung der Algorithmen. Kein Problem.
4) Verbindung zwischen dem Programm und Gui. Genau das war mein Problem.
Ich kenne aus Java das Daten-View-Model-Konzept und werde diesen Konzept auch bei diesem Projekt anwenden.
 
Zuletzt bearbeitet:
Zurück
Oben