Hallo Leute,
ich würde gerne in die GUI-Entwicklung unter Windows einsteigen.
Mit Visual C# 2010 Express habe ich schon ein paar Sachen gemacht, und
bin auch eigentlich sehr zufrieden.
Allerdings möchte ich auch Software entwickeln, die ohne weitere
Abhängigkeiten auch auf älterer Hardware und älteren Windowsversionen
läuft.
Entschieden habe ich mich jetzt für wxWidgets.
Allerdings ist wxWidgets ja erstmal nur eine Bibliothek.
Die passende Entwicklungsumgebung muss man sich erst selbst
zusammenbauen.
Folgende Möglichkeiten habe ich gefunden:
- wxDev-C++
- wxWidgets + Visual C++ 2008 Express
- wxWidgets + MinGW + Eclipse + CDT
Mein erster Versuch mit Visual C++ 2010 Express ist bereits gescheitert
weil sich die Projektdateien nicht importieren ließen.
Auf weitere Fehlschläge schon beim Einrichten der Entwicklungsumgebung
habe ich keinen Bock mehr.
Deshalb frage ich lieber hier im Forum wie man da vorgeht, und was man
sonst noch alles braucht (GUI-Builder, etc.).
Versuche es doch mal mit der IDE Code::Blocks.
Die ist selber mit wxWidgets gebaut und integriert alles was man für die
Entwicklung braucht. wxWidgets selber ist noch nicht mitintegriert. Das
mußt du trotzdem installieren. Aber dann hast du eine auch einen
grafischen GUI-Designer für wxWidgets. Mit dabei natürlich ein Editor
und ein Interface zu GDB, sprich du kannst debuggen.
900ss
Auf der Webseite von Code::Blocks finde ich nichts von einem
GUI-Designer.
Auch sonst sehe ich jetzt nichts, was das Teil gegenüber Eclipse voraus
hat.
Ich bin auch nicht auf der Suche nach einer Teilkomponente, sondern nach
einer Gesamtlösung.
Wenn das so weiter läuft, dann kommt bald der nächste und sagt: "Versuch
es doch mal mit XEmacs"...
Das will ich nicht, ich will einfach nur eine erprobte Gesamtlösung, mit
der die meisten wxWidgets-Programmierer unter Windows arbeiten.
Nachdem was ich bisher so gelesen habe scheinen die meisten mit
Visual C++ 2008 + wxWidgets + wxformbuilder
glücklich zu sein.
Die Lösung mit Eclipse + MinGW hätte evtl. den Vorteil, dass ein
späteres Linux Release möglicherweise weniger Aufwand erfordert.
Hallo Thomas,
eine weitere Möglichkeit Platform-unabhängige Software zu entwickeln ist
das Framework QT. Falls Du das im Vorfeld noch nicht in Betracht gezogen
hast ist das vielleicht eine Alternative.
Dafür gibt es einerseits die Möglichkeit mit diversen
Entwicklungsumgebungen ala Visual Studio oder KDevelop zu entwickeln
oder man nimmt die mitgelieferte Entwicklungsumgebung QTCreator.
QT unterstützt Windows/MacOSX/Linux sowie diverse embedded Plattformen.
Sowohl mit wxWidgets als auch mit QT habe ich schon kleine Anwendungen
geschrieben. Mit wxWidgets hatte ich ähnlcihe Probleme wie Du, habs dann
letztlich nur unter Linux benutzt.
QT hat immer "out-of-the-box" funktioniert!
Außerdem finde ich die QT Klassen und das Eventsystem bestehend aus
signals und slots anwendungsfreundliche als die wxWidget Klassen, aber
das ist sicherlich auch geschmackssache.
Link zu QT:
http://qt.nokia.com/downloads
Links zur sehr guten QT API Doc mit vielen Beispielen:
http://developer.qt.nokia.com/static/getting_started/http://doc.qt.nokia.com/4.6/index.html
Viele Grüße
Christian
Thomas schrieb:> Auf der Webseite von Code::Blocks finde ich nichts von einem> GUI-Designer.
Ich habe nichts weiter installieren müssen. Noch keinen Kaffee gehabt?
> Auch sonst sehe ich jetzt nichts, was das Teil gegenüber Eclipse voraus> hat.
Es ist die Gesamtlösung, die du suchst.
> Ich bin auch nicht auf der Suche nach einer Teilkomponente, sondern nach> einer Gesamtlösung.
Ja, habe ich angeboten.
> Wenn das so weiter läuft, dann kommt bald der nächste und sagt: "Versuch> es doch mal mit XEmacs"...
Wenn dein Ton so weiter läuft, dann bekommst du evtl. nichtmal mehr den
Tip mit Emacs.
Wenn du nicht in der Lage bist, dich richtig zu informieren und die Tips
genauer zu untersuchen dann kann dir niemand helfen.
> Das will ich nicht, ich will einfach nur eine erprobte Gesamtlösung, mit> der die meisten wxWidgets-Programmierer unter Windows arbeiten.>
Die "meisten" weiß ich nicht aber mit Code::Blocks hast du eine gute und
stabile Gesamtlösung. Hab ich selber genutzt.
Hall
du könntest dir natürlich auch einen GUI Creator für WxWidget verwenden
und den daraus generierten Code in deine Projekte einbinden. Ich
verwende hierfür WxGlade. Ist sehr einfach zu verwenden und der Code
lässt sich in jede beliebige IDE mit einbinden.
Thomas schrieb:> Auf der Webseite von Code::Blocks finde ich nichts von einem> GUI-Designer.
wxSmith ist bereits integriert.
Ich empfehle aber, sich von diesen GUI-Designern zu lösen und das per
Hand zu machen. Ist überhaupt nicht schwierig und erspart später eine
ganze Menge Probleme.
> Auch sonst sehe ich jetzt nichts, was das Teil gegenüber Eclipse voraus> hat.
Ich wüsste nicht, was Eclipse gegenüber Code::Blocks voraus haben
sollte. Mit Code::Blocks kann man "out of the box" sowohl
wxWidgets-Projekte als auch avr-Projekte (und noch viele andere) bauen.
Eclipse finde ich noch schlechter als Visual Studio 2005.
> Ich bin auch nicht auf der Suche nach einer Teilkomponente, sondern nach> einer Gesamtlösung.
wxWidgets+tdm-mingw+Codeblocks
> Wenn das so weiter läuft, dann kommt bald der nächste und sagt: "Versuch> es doch mal mit XEmacs"...> Das will ich nicht, ich will einfach nur eine erprobte Gesamtlösung, mit> der die meisten wxWidgets-Programmierer unter Windows arbeiten.
wxWidgets+tdm-mingw+Codeblocks
> Nachdem was ich bisher so gelesen habe scheinen die meisten mit> Visual C++ 2008 + wxWidgets + wxformbuilder> glücklich zu sein.
VisualC++ ist eine Einbahnstraße. Wenn man wxWidgets nutzt, dürfte in
den meisten Fällen Plattformunabhängigkeit ein wichtiger Grund sein. Mit
VisualC++ holt man sich da nur ein potentielles großes Problem mehr bei
der Portierung in's Boot.
> Die Lösung mit Eclipse + MinGW hätte evtl. den Vorteil, dass ein> späteres Linux Release möglicherweise weniger Aufwand erfordert.
Geht mit Codeblocks mindestens genauso gut.
Julian Smart, der Kopf hinter wxWidgets, vertreibt mit DialogBlocks
einen kommerziellen GUI-Builder mit IDE-Funktionaliät für wxWidgets:
http://www.dialogblocks.com/
Damit lassen sich diverse freie (und unfreie) C++-Compiler als "backend"
nutzen:
> DialogBlocks can create makefiles for BC++, VC++, GCC, MinGW,> Cygwin, Digital Mars C++, and Watcom C++.> It can create project files for VC++ 6, 7, 7.1, 8, and 9.
Ich entschuldige mich bei 900ss für meine abfällige Bemerkung mit
XEmacs.
Auf der Featureseite von Code::Blocks habe ich nichts gefunden, was
diese IDE bezüglich wxWidgets-Entwicklung von anderen absetzten sollte.
Also habe ich diesen Thread schon in einen dieser berüchtigten
Editor-Kriege abdriften sehen... ;)
Danke, dass du dir trotzdem noch solche Mühe bei der Beantwortung meiner
Frage gegeben hast, 900ss!
Auf Eclipse habe ich mich deswegen so konzentriert, weil es eine der
beliebtesten und meist eingesetzten IDEs überhaupt ist, und das auf
allen Plattformen und für fast alle Sprachen.
So schlecht kann Eclipse also nicht sein, und im Umkehrschluss: währe
Code::Blocks ähnlich gut, dann würde ihm auch eine größere
Aufmerksamkeit zuteil.
Qt habe ich auch in Betracht gezogen, aber zunächst wieder verworfen.
Die Lösung mit dem Wrapper von wxWidgets erschien mir schlanker und auch
eleganter als die Lösung von Qt, ein komplett eigenes GUI Toolkit
mitzuschleppen und die Anwendung darin zu "verkleiden".
Allerdings habe ich Qt jetzt auf Christians Anraten doch eine Chance
gegeben und installiert.
Und bisher bin ich wirklich sehr zufrieden.
IDE, Toolchain, GUI-Designer, Debugging, Doku, Beispiele ...
Alles aus einer Hand und sehr schön integriert.
An den Komfort von Visual C# 2010 kommt es zwar leider nicht heran, aber
das liegt zum großen Teil auch an der Sprache.
Auch an das Signal & Slot Konzept muss ich mich erst aber erst noch
gewöhnen. Ich fand es bei Visual C# sehr intuitiv einen Knopf einfach
per Doppelklick mit Leben zu füllen.
Immerhin habe ich schon fast die Hälfte der Funktionalität der C#
Version implementiert, und das ohne wirkliche C++ Kenntnisse.
Wenn ich danach noch Zeit und Lust habe werde ich aber auch noch
versuchen das ganze mit wxWidgets zu evaluieren.
Wichtig ist vor allem, dass das Programm nachher auch problemlos auf
allen möglichen Windowskisten von 2000 bis 7 und ab 1GHz / 512MB RAM
rennt.
Aufwändige Installationsroutinen, etc. will ich mir um jeden Preis
ersparen, bin schließlich kein Softwareentwickler und kratze jetzt schon
am Rande meiner Fähigkeiten.
@Gastino G.
Ist die GUI Entwicklung per Hand und direkt im Code überhaupt noch
zeitgemäß? Von unserer Softwareentwicklung weiß ich, dass die bei neuen
Designs die GUI komplett vom Code lösen und nur noch per XML
beschreiben, damit sei man angeblich flexibler...
Thomas schrieb:> Auf der Featureseite von Code::Blocks habe ich nichts gefunden, was> diese IDE bezüglich wxWidgets-Entwicklung von anderen absetzten sollte.
Wichtig ist nicht die pure Menge der Features, sondern die Art der
Umsetzung. Bei Codeblocks ist inklusive der Plugins alles dabei, was ich
so brauche und das auch noch wirklich funktional umgesetzt. Eclipse habe
ich ein paar Mal probiert, aber es immer wieder nach kurzer Zeit
verworfen.
Thomas schrieb:> So schlecht kann Eclipse also nicht sein, und im Umkehrschluss: währe> Code::Blocks ähnlich gut, dann würde ihm auch eine größere> Aufmerksamkeit zuteil.
Diese Rückschlüsse sind gerade in der Software-Welt nicht zulässig. Nach
der Logik wäre Windows das beste OS auf der Welt. ;)
Thomas schrieb:> @Gastino G.> Ist die GUI Entwicklung per Hand und direkt im Code überhaupt noch> zeitgemäß? Von unserer Softwareentwicklung weiß ich, dass die bei neuen> Designs die GUI komplett vom Code lösen und nur noch per XML> beschreiben, damit sei man angeblich flexibler...
Viele Wege führen nach Rom. Von automatischer Code-Generierung und einer
immer weiter fortschreitenden Abstraktion halte ich nicht so viel, denn
es macht extrem abhängig von bestimmten Tools, es versperrt den Blick
für interne Zusammenhänge und es bringt meist großen Ballast mit sich.
Und einfacher wird es nicht wirklich.
Für private Projekte ist die Frage nach "zeitgemäß" ohnehin irrelevant.
Probiere einfach verschiedene Dinge aus und mache das, was Dir am
meisten liegt. Nach irgendwelchen Moden musst Du Dich nicht richten.
Ich habe zu meinen wxWidgets-Anfängen auch verschiedene solcher
GUI-Designer ausprobiert und nicht einen gefunden, den ich als hilfreich
empfunden hätte. Ebenso der Designer unter VS 2005. Auf Code-Ebene bin
ich dann viel schneller vorangekommen. Die ganze Doku von wxWidgets
beschreibt ja die Klassen und Methoden und in den sehr umfangreichen
Beispielen schaut man sich letztendlich ja auch im Quelltext an, wie
bestimmte Dinge umgesetzt werden. Nach kurzer Eingewöhnung ist man
meines Erachtens da schneller und hat einen wesentlich besseren
Überblick darüber, was intern passiert.
grastino (gastino unterwegs) (Gast) schrieb:
> Thomas schrieb:>> So schlecht kann Eclipse also nicht sein, und im Umkehrschluss: währe>> Code::Blocks ähnlich gut, dann würde ihm auch eine größere>> Aufmerksamkeit zuteil.> Diese Rückschlüsse sind gerade in der Software-Welt nicht zulässig. Nach> der Logik wäre Windows das beste OS auf der Welt. ;)
Doch diese Rückschlüsse sind sehr wohl zulässig. Alles andere sind stets
nur Einzelmeinungen und die Differieren wie jeder weiß extrem. Da will
jeder wissen was das "beste OS" ist und schiebt andere Gründe vor. Die
Mehrheit ist jedoch eine statistisch messbare Größe, die man auswerten
kann und die Mehrheit hat sich nun mal für Microsoft Windows
entschieden. Deswegen ist Windows durchaus das "beste OS der Welt",
nämlich das am weitesten verbreitete OS genauso wie Ubuntu das in der
Linuxwelt am weitesten verbreitete Linux ist (aber nach Meinung vieler
auch nicht "das beste Linux"). Nach deiner Logik müsste gerade Ubuntu
eher schlecht sein, weil es die Masse benutzt. Aber die Masse besteht
nun mal aus Individuen (wie du und ich) und jeder hat seine Gründe warum
er gerade eben ein Ubuntu und nicht ein Turbolinux, Yellow Dog oder Slax
nimmt. Ubuntu hat diesen Distries gegenüber etwa 10x soviel Nutzer so
wie Windows gegenüber Linux allgemein um Größenordnungen mehr Nutzer an
sich bindet. Wer das ausblendet verfällt einer Ideologie und ist nicht
mehr objektiv.
Eugen schrieb:> Doch diese Rückschlüsse sind sehr wohl zulässig. Alles andere sind stets> nur Einzelmeinungen und die Differieren wie jeder weiß extrem. Da will> jeder wissen was das "beste OS" ist und schiebt andere Gründe vor. Die> Mehrheit ist jedoch eine statistisch messbare Größe, die man auswerten> kann und die Mehrheit hat sich nun mal für Microsoft Windows> entschieden. Deswegen ist Windows durchaus das "beste OS der Welt",> nämlich das am weitesten verbreitete OS genauso wie Ubuntu das in der> Linuxwelt am weitesten verbreitete Linux ist (aber nach Meinung vieler> auch nicht "das beste Linux"). Nach deiner Logik müsste gerade Ubuntu> eher schlecht sein, weil es die Masse benutzt.
Was für ein Chaos in den paar Zeilen. Mal zur Aufklärung:
Quantität != Qualität
Der Schluss, dass das am weitesten verbreitete Produkt das beste ist,
ist genauso unsinnig wie der, dass das am weitesten verbreitete Produkt
das schlechteste ist.
Abgesehen davon ist das hier absolut offtopic.
Gastino G. (gastino) schrieb:
> Was für ein Chaos in den paar Zeilen. Mal zur Aufklärung:
Wo ist "Chaos" in meinem Text? Hast du Leseschwächen?
> Quantität != Qualität> Der Schluss, dass das am weitesten verbreitete Produkt das beste ist,> ist genauso unsinnig wie der, dass das am weitesten verbreitete Produkt> das schlechteste ist.
Die Qualität eines OS kannst du nicht messen. Da sagt jeder was anderes
und MS wird gerne schlechtgeredet aufgrund seines Markterfolgs. Die
Quantität lässt sich aber sehr wohl messen und nur ein erfolgreiches
Produkt kann auf Dauer auch seine Kunden binden. Ob das ein Ubuntu ist
oder ein MS Windows spielt dabei keine Rolle. Die hohe Anzahl der
zufriedenen Nutzer steht synonym für dessen Qualität. Deswegen ist deine
Schlussfolgerung nicht zutreffend, denn sie suggeriert dass die Mehrzahl
sich auf Dauer mit Mist zufrieden gibt, obwohl es doch viel bessere
Alternativen gäbe. Gäbe es diese besseren Alternativen wirklich würde
sich die Mehrheit auch dorthin orientieren. Die gibt es aber nicht wie
man sieht. Und "das Beste" ist immer das was persönlich am besten zu
einem passt bzw. womit man am besten zurechtkommt. Alles andere ist
Ideologie.
@ Gastino G.
nach der Logik wäre BILD die beste Zeitung. Es gibt viele Gründe warum
etwas bei der breiten Masse ankommt, und wenn es nur genug nackt Haut
ist.
Tobi
Eugen schrieb:> Wo ist "Chaos" in meinem Text? Hast du Leseschwächen?
Kannst Du Deinen offtopic-Windows-Beweihräucherungs-Käse nicht im
offtopic-Forum ablassen? Da kannst Du Deine seltsame Argumentation auch
gleich auf die BILD-Zeitung, den VW-Käfer und andere "beste Produkte
ihres Segments" übertragen.
Thomas,
schau mal ins wxWiki, dort findest du eine komplette Schritt für Schritt
Anleitung wie du die einzelnen Entwicklungsumgebungen konfigurieren
kannst.
Ich empfehle dir :
- Eclipse CDT
- wxWidgets
- Mingw
Weil:
- du hast dann eine Entwicklungsumgebung mit der du unter Windows,
Linux, und co. arbeiten kannst, und die auf jedem OS genau gleich
aussieht!
- wxWidgets mehr als nur GUI zu bieten hat (z.B. Sockets, Threads,
Regular Expressions...) Alles aber total easy ist gerade für Einsteiger
(vgl. Boost)!
- Mit Mingw hast du genau den gleichen Compiler auf allen OS!
Thomas schrieb:> Danke, dass du dir trotzdem noch solche Mühe bei der Beantwortung meiner> Frage gegeben hast, 900ss!
Bitte sehr :-)
Heiner Kollege schrieb:> Weil:>> - du hast dann eine Entwicklungsumgebung mit der du unter Windows,> Linux, und co. arbeiten kannst, und die auf jedem OS genau gleich> aussieht!
Ist bei Code::Blocks auch gegeben UND er hat einen GUI-Designer
integriert, was das Leben doch erheblich einfacher macht.
> - Mit Mingw hast du genau den gleichen Compiler auf allen OS!
Ist bei Code::Blocks auch gegeben.
Eclispe ist sicher keine schlechte Umgebung aber um GUIs zu bauen eine
schlechte Wahl. Höchstens mit einem extra GUI-Designer, welcher bei
Code::Blocks auch nicht nötig ist.
Aber jeder findet das am besten, was er gewohnt ist.
Thomas schrieb:> Mein erster Versuch mit Visual C++ 2010 Express ist bereits gescheitert> weil sich die Projektdateien nicht importieren ließen.
Ich oder besser wir arbeiten seit vielen Jahren mit wxWidgets für alle 3
Betriebssysteme. Unter Windows verwenden wir VC++2006 bis VC++2013.
Visuell Studio allerdings nur zum Debuggen und Profiling. Ansonsten zum
Übersetzten makefiles. Spätestens wenn zum Projekt noch ein Sack voll
anderer Libs nötig sind und das ganze über 10 oder 20 Jahre läuft sieht
man viele IDEs kommen und gehen und freut sich davon nicht abhängig zu
sein.
Wir linken auch alles komplett statisch. Die meisten Anwendungen
bestehen dadurch nur aus einer einzigen exe ohne das üblichen dll-Grab.
Wenn du sowieso auch auf OSX und Linux willst, ist die makefile-Variante
sicher die beste. Das ist auf allen Systemen gleich und make gibts auch
für Windows.
Im Gegensatz zu den Weihnachtsbäumen (was für bizarre Menschen betreiben
so eine Webseite?) ist das von mir vor sechs Jahren erwähnte Tool
DialogBlocks nach wie vor am Leben und es wird munter weiterentwickelt.
(die aktuelle Version 5.11 ist vom 22.9.16)
http://www.dialogblocks.com/about.htm
Rufus Τ. F. schrieb:> was für bizarre Menschen betreiben> so eine Webseite?
Ich denke da geht es um irgendeine (alte)
Suchmaschinen"optimierungs"masche.