GUI nutzen: Beginnerthread
-
Hallo,
ich habe nun schon Erfahrung in der C++-Programmierung. Nicht die größten aber immerhin welche^^Bisher habe ich jedoch nur Konsolen-Programme mit dem C++BuilderX von Borland geschrieben (Software war bei einem Buch, das ich gekauft habe, dabei).
Nun möchte ich jedoch keine Konsolenprogramme, sondern Programme mit grafischer Oberfläche programmieren.
Nun meine Frage:Was benötige ich genau dazu an Software? Habe etwas von Glabe gelesen. Diese Software sollte kostenlos sein, wenn es geht und sehr gut wäre natürlich wenn es eine schöne Anleitung dazu gibt im Netz.
-
Erstmal solltest du dich für ein Toolkit entscheiden.
Als IDE würde ich entweder MSVCExpress oder Code::Blocks empfehlen. Letzteres gerade wenn du wxWidgets machst.
phlox
-
Wenn ich das nun poste, schüttelt ihr bestimmt mit dem Kopf.
Aber verstehe ich das nun richtig: Das von dir genannte ist etwas anderes als Borland und ich brauche eines der von dir vorgeschlagenen IDE's zusätzlich zu Borland?
-
sry für das Doppelposting, aber meine nicht Borland, sondern den C++Builder
-
Um graohische Programme zu entwickeln, reicht wie bei Konsolenprogrammen als Minimum ein Compiler. Also eine IDE (interierte Entwicklungsumgebung) braucht man nicht zwingend. Du benutzt ja schon eine IDE, aber diese ist veraltet und hat einen nicht standardkonformen C++-Compiler.
Steige deshalb erstmal auf einen aktuellen Compiler und IDE um. Z.B. das kostenlose VisualC++ 2008 Express Edition. Egal ob du GUIs programmieren willst oder nicht.
So, dann suche dir eine GUI-Library oder -Toolkit raus. Hier mal ein paar allgemeine Infos, damit du überhaupt weißt, worum es geht:
http://www.kharchi.eu/wiki/doku.php?id=cpp:gui:basicsUnd danach dann das hier lesen:
http://www.kharchi.eu/wiki/doku.php?id=cpp:gui:libs
-
Fragender001 schrieb:
Was benötige ich genau dazu an Software? Habe etwas von Glabe gelesen. Diese Software sollte kostenlos sein,
Kostenlos sind fast alle GUI-Libraries.
wenn es geht und sehr gut wäre natürlich wenn es eine schöne Anleitung dazu gibt im Netz.
Tja, und hier sollte man nicht zu viel erwarten. Gibt nur wenige Toolkits, die eine gute Einsteiger-Anleitung bieten. Und meistens nur für bestimmte IDEs. VisualC++ wird in fast jeder Anleitung behandelt, da es nunmal die meist genutzte IDE unter Windows ist.
Ansonst noch Englischkenntnisse mitbringen, auf deutsch wird man praktisch nichts finden.
-
Hallo,
so euch beiden nochmals vielen Dank, besonders an TSO. Die Seite ist wirklich sehr gut.Ok, dass meine IDE veraltet war, wusste ich gar nicht. Habe mir also deine empfohlene IDE zugelegt, also Visual C++ 2008 Express.
Diese ist ja kostenlos oder? Ich habe am Ende was von einer aktivierung gelsen. Muss ich die Software aktivieren?
So nun zu den GUI Libs:
Habe mir die Seite durchgelesen. Was für eine Lib. würdet ihr mir empfehelen. Ihr kennt euch ja etwas besser damit aus. Welche nutzt ihr und warum?Vielen Dank für eure Hilfen
-
Diese ist ja kostenlos oder? Ich habe am Ende was von einer aktivierung gelsen. Muss ich die Software aktivieren?
Ja, sie ist kostenlos und man darf auch damit kommerzielle Software entwickeln. Die Registrierung/Aktivierung ist auch kostenlos. Man bekommt dann glaube ich Zugang zu zusätzlichem kostenlosen Material (Icons usw.). Wenn Du das nicht willst, kannst du bei MS auch eine Offline-Variante als ISO-Image runterladen.
So nun zu den GUI Libs:
Habe mir die Seite durchgelesen. Was für eine Lib. würdet ihr mir empfehelen. Ihr kennt euch ja etwas besser damit aus. Welche nutzt ihr und warum?Hem, ich habe dir die Seite extra gepostet, damit wir uns vor der Empfehlung drücken können. Es ist eigentlich fast egal welche man benutzt, alle haben ihre Vor- und Nachteile. Es gibt keine perfekte Library. Du mußt doch wissen, was für DICH wichtig ist. Du mußt damit arbeiten und mit dem Ergebnis zufrieden sein. Z.B. will der eine unbedingt, das die GUI-Library seeeehr klein ist. Dann fallen schon mal so Kandidaten wie gtkmm raus. Dafür sind dann FOX und FLTK zu empfehlen. Aber dann ist dem nächsten FLTK vom Aussehen her zu schlicht. Dann muß man was anderes nehmen. Dann gefällt einem die Lizenz nicht... usw. usf.
Bsp.: Qt ist z.B. nur kostenlos, wenn du GPL-Software entwickelst. Kann für den einen oder anderen ein K.O.-Kriterium sein. Dem anderen ist das egal, der zahlt halt 1000 EUR für Qt, weil er eh kommerzielle Software entwickelt.
Irgendwann muß man dann eine nehmen und dafür Kompromisse eingehen, mit denen man leben kann.
Die von mir gepostete Seite führt alle wichtigen Unterschiede auf. Und alle dort genannten Libraries sind ernsthaft nutzbar.
-
Ok dann stelle ich mal meine Anforderungen nach Prioritäten, vllt. können wir dann für mich gemeinsam eine raussuchen^^ Wäre echt super.
1. Sie sollte auf jeden Fall kostenlos sein.
2. Ich muss die damit gecodete Software weitergeben können egal ob kommerziell oder nicht (kommerziell habe ich jetzt nicht vor, aber will dann auch gerne bei einer bleiben).
3. Es sollte auch ein Tool dabei sein.
4. Ideal wäre natürlich etwas plattform unabhängiges.
5. Wie besagt wären Tutorials nicht schlecht ob englisch oder deutsch ist egal.So der Rest sollte erstmal keine große Rolle spielen.
Dann noch was zu Aktivierung/Registration: Du hast ja geschrieben die ist kostenlos, aber ich kann die ruhig ohne Bedenken machen? Habt ihr euch auch geregt oder die Offline Variante bezogen?
-
Habe meine Anforderungen mal mit der Liste verglichen: gtkmm Das scheint für mich gut geeignet oder?
/Offtopic: Sollte mich hier mal anmelden^^
-
Ja, gtkmm ist ein guter Kandidat für deine Anforderungen. Die Dokumentation dazu ist auch eine von den besseren und es wird auch sehr gut beschrieben, wie man es für VisualC++ einrichtet.
Zur Registrierung: nach der Registrierung wird nichts schlimmes passieren. Bist halt bei MS nur als VC++-Nutzer registriert. Ob du das machst: deine Entscheidung!
-
Fragender001 schrieb:
2. Ich muss die damit gecodete Software weitergeben können egal ob kommerziell oder nicht (kommerziell habe ich jetzt nicht vor, aber will dann auch gerne bei einer bleiben).
Meines Erachtens ist es nicht so wichtig, wenn man erstmal es erlernen will.
Die Toolkits sind vielfach ähnlich aufgebaut.3. Es sollte auch ein Tool dabei sein.
4. Ideal wäre natürlich etwas plattform unabhängiges.
5. Wie besagt wären Tutorials nicht schlecht ob englisch oder deutsch ist egal.GTKmm ist imho nur dann eine gute Wahl, wenn deine Plattform hauptsächlich Linux ist.
Auf Windows ist GTK nicht sehr stark vertreten, und der Standard Skin sieht einfach wie von Vorgestern aus.
Zu dem muss man wenn es nicht in GTKmm vorhanden ist, auf C, also GTK
zurückgreifen, was ich unschön finde. GTKmm ist letzten Endes nur ein C++ Wrapper um ein C Toolkit, wenn auch ein wirklich guter.wxWidgets erfüllt auch jede Anforderung, und verwendet unter Linux ebenfalls GTK. Einziges Manko an wxWidgets ist, es verwendet nicht ganz so modernes C++ wie z.B. GTKmm, was aber auch am Alter von 12 Jahren mit liegt. Deshalb gibts zur Zeit zum Beispiel keine wxWidgetsklassen die Templates nutzen. Auch exsistiert leider kein eigener Namespace.
phlox
-
Was soll denn heißen, das GTK(mm) nicht auf Windows vertreten ist? Ich habe schon mal in diesem Forum gefragt, das man mir doch bitte eine Erklärung für abgibt. Nichts gekommen, nur leere Behauptungen.
Ich weiß nur eines: GIMP (welches nun wirklich GTK+ bis zum Erbrechen nutzt) funktioniert bei mir unter Windows wuuuunderbar. Und der Skin sieht nicht wie von vorgestern aus, sondern so wie ich ihn in Windows einstelle. Denn GTK passt sich dem Look an.
Auch andere Programme, wie Gnucash (GTK+) und Inkscape (gtkmm), laufen unter Windows ohne Probleme.
-
Denn GTK passt sich dem Look an
Widerspreche ich. Es ist nicht nativ und sieht auch nicht so aus.
Und natürlich läuft GTK unter Windows, genauso wie andere Toolkits.
Der Nachteil ist wirklich das Theme. Wenn eine Anwendung aber nicht das gewohnte Look and Feel der Platform verwendet, werden viele Anwender das Programm nicht verwenden.
wxWidgets verwendet immer native Controls wo immer möglich. GTK zeichnet afaik eigene. QT bietet auch ein natives LNF, allerdings unter Windows nur mit einer OpenSource-Lizenz verfügbar ( was mich jetzt nicht stört).
Einziges Manko an wxWidgets ist, es verwendet nicht ganz so modernes C++ wie z.B. GTKmm, was aber auch am Alter von 12 Jahren mit liegt. Deshalb gibts zur Zeit zum Beispiel keine wxWidgetsklassen die Templates nutzen. Auch exsistiert leider kein eigener Namespace.
Ich seh es nicht als Manko, sondern als Vorteil. Es ist schön und einfach damit zu programmieren und es gibt viele Tools wie wxFormbuilder (GUI-Builder) oder poEdit ( Übersetzung) u.a. die sich mit wxWidgets toll ergänzen und auch damit geschrieben wurden. Auch die Doku und die zahlreichen Samples sorgen für einen schönen Einstieg.
Es gibt im Netz einige Artikel darüber, wie sich der Look and Feel auf den User auswirkt und warum immer das native bevorzugt werden sollte. Einfach danach googlen. Wobei es mMn auf die Zielgruppe ankommt. Ein Profi-Programmierer wird sich eher an ein Programm gewöhnen das nicht nativ aussieht als ein 08/15 User.
Nur meine 2 Bytes dazu, weil hier @ Arbyte grade nix los is.Aber probier doch einfach beide aus und schau, welches dir besser gefällt. Lizenztechnisch ist wxWidgets sehr frei.
rya.
-
Scorcher24 schrieb:
Widerspreche ich. Es ist nicht nativ und sieht auch nicht so aus.
Und natürlich läuft GTK unter Windows, genauso wie andere Toolkits.
Der Nachteil ist wirklich das Theme. Wenn eine Anwendung aber nicht das gewohnte Look and Feel der Platform verwendet, werden viele Anwender das Programm nicht verwenden.Und? War das für den Fragesteller dieses Thread wichtig? Nein! Damit ist eigentlich euer angebliches Gegenargument irrelevant. In der GUI-Tabelle steht eindeutig, das gtkmm keine nativen Widgets hat. Und damit "lebt" der Fragesteller. Dann kommt ihr, und übertragt eure persönlichen Ansprüche auf die des Fragestellers. Warum? Er hat eindeutig seine wichtigsten Pros genannt. Und da stand nix von nativen Widgets.
Aber zu behaupten, das GTK sich nicht an den look anpasst, ist schlicht gelogen! Es ist kein natives Look&Feel, aber der Look wird im Backbuffer von den orig. Win32-Controls kopiert.
-
Es wurde nach Empfehlungen gefragt, das ist sowas wie eine Meinung. Und ich erlaube mir, meine eigene zu haben.
Ich habe dargelegt, warum ich diese habe und es ist nicht deine Aufgabe, es in Frage zu stellen, warum ich diese hier schreibe oder nicht.
rya.
-
Hallo,
wie gesagt ist ja nur der Anfang und wenn diese alle sich ähneln, dann beginne ich einfach mal mit einem.
Meine Entscheidung fiel auf gtkmm, damit probiere ich erst einmal rum^^
Danke euch allen. So für alle die das selbe Problem wie ich haben und so wie ich entscheiden:Zuerst: http://www.c-plusplus.net/forum/viewtopic-var-t-is-162554.html
Die Datei bekommt man hier:
GTK+ : http://sourceforge.net/project/showfiles.php?group_id=98754&package_id=111411&release_id=592702
Aber wenn ich das oberste runterlade, kommt schon beim vorbereiten ein Fehler, dass eine Datei nicht beschrieben werden konnte.
Kann mir nochmal jemand helfen?Nachdem ich dann Thread 1 gemacht habe, aheb ich auch den Thread gefunden:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-165460.html
Aber ich scheiter noch an dem Installer
-
Die Installation müsste eigentlich ganz einfach funktionieren. Haste auch Admin-Rechte zum Installieren?
Mein Tip:
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-msvc.htmlHinweis: Das PlatformSDK ist schon beim VC++2008 dabei. Die Anleitung ist noch für VC++2005, wo man das PSKD extra installieren mußte.
-
Habe die URL geöffnet. Und die File runtergeladen (Link zum GTK+ geht ned)
Habe also die GTK development Version 2.12 runtergeladen.
Wollte das installieren: Kommt: Error writeing to file....op1.iniJa habe Adminrechte.
Das nächste PRobleme: Da steht man brauch die selben Versionen von GTkmm gibet aber nur auf dem Link der Seite bis 2.10Wäre super wenn du das gerade mal selber testen könntest, ob es an mir liegt oder nicht
-
Hem, ich habe hier schon gtkmm-devel 2.4 installiert. Nochmal mache ich das nicht.
Hier gibts Infos, Installer und Setup-Infos, die es genauer beschreiben:
http://live.gnome.org/gtkmm/MSWindowsWichtig:
Both packages contain the GTK+ runtime and its dependencies, and the development package also contains GTK+ header files, import libraries and documentation. You don't need to install anything else to use the packages.
GTK+ brauchst du also nicht runter laden! Hauptsache das gtkmm-devel.