Start mit einem GUI in C++

Naja, ich gebe jetzt auch mal meinen Senf mit dazu.

Ich habe für eine Zeit lang WinAPI gemacht; nur, wie bereits gesagt, es ist recht kompliziert im Vergleich zu .NET (WinForms) und Qt. Von Qt habe ich persönlich weniger Ahnung, ich habe eine Zeit lang mit WinForms gearbeitet. Das ist aber auch ein Krampf, bis man sich da eingearbeitet hat, weil MS zunächst mal C++ teilweise über den Haufen geschmissen hat und man sich an die ganzen ^s und <>-Arrays, genau wie die for each-Schleifen gewöhnen muss.
Also, nach allem was ich gehört habe, ist Qt wahrscheinlich für dich die beste Wahl, es sei denn, es geht um kompromisslose Performance auf Windows-Rechnern (Spiele etc.).
Ist auch schön, dass du bei Cpp bleibst. Ist eigentlich eine nette Sprache und wenn man dann bei anderen Sprachen anfängt, hat man ein ganz unsicheres Gefühl weil man sich die Vererbungen und Zugriffsrechte, die man sich so schön zurechtgelegt hat, gar nicht braucht.;)

Viel Glück und Spaß!
Frohes Fest,
NFC
 
Vielen Dank für eure Antworten!!

Ich glaube WinAPI ist für mich erstmal die bessere Wahl, da ich mich nun schon etwas reinprogrammiert habe, und ich ehrlichgesagt es etwas umständlich finde, bei Qt vor der Verwendung es erstmal zu installieren.
(Als Anwender natürlich, als Ersteller ist's klar)
Ich kann ja immer noch umsteigen, doch Windows bleibt momentan erstmal führendes OS.
Gerne lass ich mich (vielleicht sogar von mir) noch umstimmen,
doch ich werde mich non erstmal mit WinApi beschäftigen.

Wenn auch etwas OffTopic:

Ich nutze als Entwicklungsumgebung CodeBlocks, kennt sich jemand damit aus????
Ich weiß, meine Frage ist vielleicht eine Noob-Frage, doch damit wurde ich noch nie konfrontiert.
Ich habe nämlich das Problem, das ich nicht weiß wie man Ressourcen in Code::Blocks korrekt einbindet,
beim kompilieren der folgenden Ressourcendatei kommen nämlich gleich zwei Probleme....(Sorry, wie kann man hier Einrückungen machen??)

1 :#include <windows.h>
2 :#include "resource.h"
3 ://///////////////////////////////////////////////////////////////
4 ://
5 :// Menü
6 ://
7 :IDR_MENU1 MENU
8 :BEGIN
9 : POPUP "Datei"
10: BEGIN
11: MENUITEM "Öffnen", ID_FILE_OPEN
12: MENUITEM "Speichern", ID_FILE_SAVE
13: MENUITEM "Ende", ID_FILE_EXIT
14: END
15: POPUP "Optionen"
16: BEGIN
17: POPUP "Optionen"
18: BEGIN
19: MENUITEM "Option&1", ID_OPTIONS_OPTIONS_OPTION1
20: MENUITEM "Option&2", ID_OPTIONS_OPTIONS_OPTION2
21: END
22: END
23: MENUITEM "Über", ID_ABOUTEND 24://///////////////////////////////////////////////////////////////
25://
26://Icon
27://
28:ID_ICON ICON "goofy.ico"


Also es gibt hierbei zwei Probleme:

1.Woher bekomm ich die Datei 'resource.h'(Indem die Konstanten gespeichert sind)?
(Sie wurde befindet sich nicht im Projektordner)
2.Es gibt beim kompilieren mehrere(bzw immer nur einen, da der Compiler beim ersten Fehler hängenbleibt)Syntaxfehler.(1. in Zeile11)

Vielleicht weiß jemand ja des Rätsels Lösung.

Vielen Dank für die Antworten

Freddycbv
 
und ich ehrlichgesagt es etwas umständlich finde, bei Qt vor der Verwendung es erstmal zu installieren.
(Als Anwender natürlich, als Ersteller ist's klar)
Du musst als Anwender Qt nicht installieren, du musst als Entwickler blos die Qt-irgenwas.dll mit ausliefern..
Qt is toll!!
 
Aha,

dann hab ich das woohl falschverstanden:

Nimm QT wenn:
1. Deine Benutzer auch Linux einsetzen, bzw nur Linux
2. Du deinen Usern zutraust QT zu installieren (ist gegeben, wenn sie Linux nutzen)
3. ODER deine User Windows nutzen, du aber eine Anwendung schreibst die einen ganz speziellen (wissenschaftlichen) Einsatzzweck besitzt und du daher den Umstand in kauf nehmen kannst was extra zu installieren.

oder etwa nicht ?????

Was muss man denn nun als Anwender machen????
 
Als normaler Anwender brauchst du eigentlich nichts zu machen (außer die passende Version des Programms zu nutzen - Windows, Linux, Mac, ...).

Als Entwickler musst du dich halt darum kümmern, alle benötigten Dateien mit auszuliefern.

Qt besitzt außerdem eine eigene IDE mit Designer, basiert auf C++ (hat also Klassen und unterstützt Vererbung) und hat der auf C-basierenden WinAPI einiges voraus.
 
Die Resource.h wird in der Regel vom Resourcen Editor gepflegt und enthält Konstanten die als Schnittstelle zwischen Resourcen und Code dienen (Befehlskonstanten und Bezeichner). Sie sollte sich im selben Verzeichnis wie die Resourcen Datei befinden.

Wenn dem nicht so ist, dann geb mir mal bescheid und ich gebe dir mal ein Muster (zu faul das jetzt zu machen ;) )
 
:klatsch: Ich sollte lieber mal nachdenken(bzw. nachschauen), bevor ich hier ne Frage schreib.....

Die Datei, in der die Konstanten erstellt wurden, fand ich nach einigem Suchen auf der Seite des Turrorials.Lesen muss auch gelernt sein....:D
Habe jedoch nocheine Frage dazu...

Dazu mal die gefundene Datei:

//resource.h - Headerdatei

#define ID_STRING_OPEN 1
#define ID_STRING_SAVE 2
#define ID_STRING_OPTION1 3
#define ID_STRING_OPTION2 4
#define ID_STRING_ABOUT 5
#define IDR_MENU1 101
#define ID_ICON 111
#define ID_FILE_OPEN 40001
#define ID_FILE_SAVE 40002
#define ID_FILE_EXIT 40003
#define ID_OPTIONS_OPTIONS_OPTION1 40004
#define ID_OPTIONS_OPTIONS_OPTION2 40005
#define ID_ABOUT 65535

Sowas kann man doch eigentlich selber machen, also z.B. von 1-99 Zeichenketten
und von 100-199 die verschiedenen Menünamen, usw...
Es ist also egal, welche Nummer die verschiedenen define-Konstanten haben,
oder irre ich mich da???

Habe bisher noch nicht mit Ressourcen gearbeitet, also sorry:D.
Macht das Verändern einfacher und schneller,
(???Der Compiler kompiliert dann nur noch die .rc Datei, oder????)

Vielen Dank für Antworten,

Freddycbv

PS: Würd ehrlichgesagt lieber was anderes als CodeBlocks benutzen, ist aber schön schnell...
(Mit Microsoft VS dauert das kompilieren eines Hello-World-Programmes
ca. 20 sec, zu lang für mich....:D)


EDIT::: Achso, mit der Datei hat dann alles geklappt, bin nur etwas anderes von CodeBlocks geewöhnt.
Normalerweiße steht in den Fehlermeldungen immer schön viel drinn, also eher "ID_FILE_OPEN was not
decleared in this Scope" oder so ähnlich... "Syntax-error" isn bissle smart
 
Zuletzt bearbeitet:
20 sek ist allerdings was lang :ugly:
Kann ich allerdings nicht bestätigen:D

Mmmh, hast wohl auch nen neueren als den hier:

Mein PC:
-Graka: Nvidia Riva TnT 64
-Ram: 512MB SDRam
-CPU: Pentium 3 @1Ghz
-MB: Compaq Deskpro (Chipsatz: Intel Solano i815)
-Röhrenmonitor mit laut Everest einer max. Auflösung von [FONT=&quot]1280 * 1024[/FONT]

Am 24.01 kommt was neues her....
 
Zurück