GUIs
-
Hallo,
mich würde einmal interessieren, welche GUI-Library ihr für die GUI-Programmierung verwendet.(und warum)
-
OCL (Open Class Library)
Warum? Ich kanns mir nicht aussuchen, das ist die einzige Lib die sowohl für Windows als auch OS/2 verfügbar ist. WxWindows für OS/2 ist so dermassen Beta dass es kaum benutzbar ist. Ausserdem gefällt mir das Design von WxWindows absolut nicht.
-
Ich benutze zZ. GTKmm, dass gefällt mir von den bisherigen Lösungen am besten. GTKmm ist nen C++ Wrapper um GTK. Das Design der Library ist recht schön und im Gegensatz zu den anderen GUI Librarys mit "echtem C++" geschrieben und nicht voller Macros und ähnlichem.
Aber eigentlich bin ich mit GTKmm nicht ganz zu frieden. Deswegen entwickel ich gerade mit ein paar Leuten (eigentlich sind wir noch beim Design :)) ein eigenes Widget System
-
Ich hab bisher immer MFC benutzt und habe mir jedoch vor einiger Zeit mal wxWindows angeschaut. wxWindows will ich jetzt auch intenstiv nutzen. MFC werde ich für Mini-GUIs bzw. Mini-Progrämmchen nutzen, da wxWindows schon ein großer (aber leistungsfähiger!) Brocken ist.
-
Ich bin zZ vom Windows Forms Designer von Visual C# recht angetan. Leider will ich aber meine Programme weiterhin in C++ schreiben. Gibts da irgendeine Möglichkeit die GUI in C# zu machen, die Funktionalität in C++ zu implementieren und die beiden "Anwendungen/Prozesse" über irgendeine weise kommunizieren zu lassen?
Vorschläge und Links usw. sind wilkommen
-
@Jover
das Thema hatten wir erst gerade http://www.c-plusplus.net/forum/viewtopic.php?t=56027
-
Ja ich weiß. Danke.
Von dieser Diskussion konnt ja auch meine "Idee".
Auf Seite 2 schrieb Kane:
"Wie wärs wenn man das Problem in zwei Programme aufteilt?
Ich hab mein GUI-Prog (vielleicht in einer extra GUI-Scriptsprache geschrieben)
das über ein Interface (Pipes?) mit einem C++/C/Java/WasAuchImmer-Hintergrundprozess kommuniziert.
Ichh kann dann auch einfach auf eine anderes GUI-Interface wechseln oder
irgendwas zu recompilen."Ich halte das für eine sehr gute Lösung.
GUI-Programm in C# (Windows.Forms)
"Hauptprogramm" in C++Aber wie soll man mit dem Hintergrundprozess kommunizieren?
-
wie du mit dem Backend kommunizieren kannst, ist doch ganz leicht. Schau dir mal die verfügbaren IPC/RPC Techniken an. Bei dotNET ist wohl das populärste SOAP, wobei ich mich dann fragen würde, ob nicht klassicher IPC schneller sein dürfte (also Pipes, Sockets, FIFOs, Shared Memory etc.). Du kannst aber natürlich auch CORBA einsetzen.
-
Danke.
Was würdest du nehmen, wenn ich auf der GUI Seite C# nehme, und auf der Funktionalitätsseite, möglichst reines C++ mit der STL will. (Mir ist klar, dass ich das nicht ganz hinbekommen werde)
Ein paar links zu Tutorials und Artikel wären echt hilfreich.
-
Vielen Dank für die zahlreichen Antworten. Also ich hab mich in letzter Zeit auch mit C# angefreundet. Ich hab mir vorher allerdings auch mal Qt angesehen.
-
@Jover
dann fallen ja die meisten RPC Techniken weg, da diese ja (extrem) in den Programmcode eingreifen. Also musst du mit IPC arbeiten. Nun stellt sich die Frage ob du auch Front-End und Backend auf verschiedenen Rechnern laufen lassen willst, dann bleiben dir Sockets. Ansonsten würde ich Shared Memory nehmen, da das am schnellsten sein dürfte. Probier am besten mal ein wenig rum mit den IPC Methoden, die du zur Verfügung hast.
-
Dann werd ich jetzt mal etwas mit Sockets machen.
Welche Lib, ist da für C++ zu empfehlen?EDIT: Für SOAP hab ich nur was für WebServices gefunden.
-
WebServices sind ja RPC Methoden.
Für Sockets gibt es eine Menge C++ Wrapper im Web. Ich würde mal nach boost::socket schauen (ist aber noch keine offizielle boost Erweiterung). ACE soll auch recht schön sein, nur recht groß (enthält eben auch das ganze CORBA Zeugs). Socket++ ist sonst noch populär.
-
Ähm, Ich war jetzt ein bisschen googlen, und leider habe ich nichts über boost::socket gefunden. Ich habe mir nur die boost lib runtergeladen (wobei ich dieses System noch nicht ganz durchblicke mit dem JAM-Dateien). Aber da boost::socket noch kein offizieller bestandteil davon ist, wird es da nicht dabei sein...
Könntest du mir nen Downloadlink zu boost::socket und ACE geben?
Und eine kurze Anleitung wie man die boost lib zu benutzen hat.Danke
-
naja, beides finde ich mit google
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
http://www.cs.wustl.edu/~schmidt/ACE-overview.html
-
Und wo kann man da boost::socket downloaden? Da hab ich keinen Download gefunden, nur Infos.
-
-
Beim link zu ACE hab ich auch nichts konkretes zum Downloaden gefunden
-
http://deuce.doc.wustl.edu/Download.html
aber das entsprechende Packet schaffst du schon alleine auszuwählen
-
also ich verwende für die GUIs gar kein C *schäm*. Allerdings arbeite ich fast ausschließlich im Datenbank-Bereich...
Die GUI wird in VB erstellt, das geht schön schnell. Die zeitkritischen Prozesse werden in C++ als ATL-DLL geschrieben und die Parameter über COM/OLE ausgetauscht.
Alles, was mit Stringverarbeitung, Arrays, Parsen, Dateioperationen etc. zu tun hat, wird schon in VB vorbereitet und fertig an die DLL übergeben.
Nachteil: die entstehenden Appliktionen sind nicht plattformunabhängig.
Vorteil: kurze Entwicklungszeit, und vor allem weniger Fehler. In VB ist es viel schwerer, Fehler zu machen, als in C++