Forum: PC-Programmierung einfaches GUI Toolkit (C)


von Bernhard (Gast)


Lesenswert?

Hallo Leute,

da ich alle heiligen Zeiten mal eine Anwendung mit GUI programmiere, bin 
ich auf der Suche nach einem recht einfachen GUI Toolkit. Das letzte Mal 
(schon gut zwei Jahre her), als ich ein Programm mit GUI programmiert 
habe, hab ich dafür LabWindows/CVI von National Instruments eingesetzt. 
Da das aber nun schon einige Zeit her ist, wollte ich fragen, ob es 
mittlerweile "bessere" (liegt natürlich im Auge des Betrachters) 
Software dafür gibt?

Grundsätzlich muss ich an dieser Stelle sagen, dass ich mit 
LabWindows/CVI recht zufrieden war. Es hat vielleicht nicht die 
schönsten graphischen Oberflächen produziert, aber dafür war der 
Einstieg recht einfach. Aufgrund des recht hohen Preises der Software 
(trifft mich als Student jetzt zwar nicht so sehr, da ich mir eine 
Studentenlizenz holen kann), bin ich am Überlegen ob es nicht Zeit wäre 
sich nach etwas anderem umzusehen. Im Internet bin ich nun auf QT 
gestoßen, was für mich auf den ersten Blick nicht so schlecht aussieht. 
Die Frage ist nur, wie gut ist QT zum Darstellen/zur Aufbereitung von 
Messwerten geeignet? Ich würde nämlich gerne verschiedene Graphen mit 
Messwerten erstellen, in die man zoomen kann, usw...
Da meine C++ Kentnisse nicht gerade berauschend sind, wäre es von 
Vorteil, wenn das GUI Toolkit C unterstützt. Wie sieht es da bei QT aus? 
Nach meiner Recherche im Internet sollte das ja mit QT möglich 
sein...Oder würdet ihr mir bei QT generell zum objetorientierten C++ 
raten?

von alesi (Gast)


Lesenswert?

Bernhard schrieb:
> bin
> ich auf der Suche nach einem recht einfachen GUI Toolkit.

Hallo,

evtl. das hier mal anschauen (ist aber C++ statt C)

FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for 
UNIX®/Linux® (X11), Microsoft® Windows®, and MacOS® X. FLTK provides 
modern GUI functionality without the bloat and supports 3D graphics via 
OpenGL® and its built-in GLUT emulation.

FLTK is designed to be small and modular enough to be statically linked, 
but works fine as a shared library. FLTK also includes an excellent UI 
builder called FLUID that can be used to create applications in minutes.

FLTK is provided under the terms of the GNU Library Public License, 
Version 2 with exceptions that allow for static linking.


  http://www.fltk.org

von Bernhard (Gast)


Lesenswert?

Sowas schlankes klingt auf den ersten Blick natürlich toll. Meine 
Bedenken sind nur, dass ich mir dadurch im späteren Verlauf eventuell 
mehr Probleme einhandle, als mir lieb ist (weil z.B bestimmte Widgets 
einfach nicht verfügbar sind und man dann mühsam selbst Hand anlegen 
muss).

Ich hab jetzt nochmal ein bisschen recherchiert und öfters gelesen, dass 
QT zusammen mit C nicht so eine gute Idee ist. Nun bin ich auf GTK+ 
gestoßen. Zusammen mit den entsprechenden Widgets [1] könnte ich mir das 
durchaus brauchbar vorstellen. Was meint ihr?

[1] http://sourceforge.net/projects/giw/

von physiker (Gast)


Lesenswert?

Wenn QT dann mit QWT für Graphen.

http://qwt.sourceforge.net/

von heinz (Gast)


Lesenswert?

Mit GTK hab ich auch eine zeitlang rumgemacht. Was mir da nicht passt 
sind die unmengen an DLLs.

Noch was schlankes (benutz ich zZ)
http://www.tecgraf.puc-rio.br/iup/

von Schnorch (Gast)


Lesenswert?

heinz schrieb:
> Noch was schlankes (benutz ich zZ)
> http://www.tecgraf.puc-rio.br/iup/

So auf den ersten Blick scheint das Framework ziemlich viele Windows UI 
Guidelines zu verletzen. Besonders die neueren Controls und Styles in 
Windows 7 / 8 werden scheinbar garnicht unterstützt!?

von klausr (Gast)


Lesenswert?

Schnorch schrieb:
> So auf den ersten Blick scheint das Framework ziemlich viele Windows UI
> Guidelines zu verletzen. Besonders die neueren Controls und Styles in
> Windows 7 / 8 werden scheinbar garnicht unterstützt!?

Das wird bei kleinen Toolkits, bei denen viele ja im Sinne von 
Cross-Platform programmiert sind, ganz schwierig. Entweder sucht man 
sich ein  Windows-Only-Toolkit (und landet wohl bei .NET mit VB oder C#) 
oder man nimmt eines der Mainstream Toolkits, und da wirds bei C 
Unterstützung ganz eng. Wie viele Leute programmieren denn noch Windows 
Programme in C und benötigen die Windows 7/8 Styles?
Das Mainstream-Cross-Platform Toolkit ist eh Qt - und meines Erachtens 
tut man gut daran, die Basics in C++ zu lernen um dieses Toolkit 
einsetzen zu können - es ist auch nicht so schwer.
Objektorientierung ist bei GUI-Programmen eine feine Sache und OO sollte 
auch von jedem Programmierer halbwegs verstanden worden sein. Hobby hin 
oder her. Qt bringt viele Beispiele mit und hat eine breite Community. 
Man muss ja nicht jedes Feature von C++ verstanden haben und verwenden.

Ob Qt jetzt schon die Windows 7/8 Syles gut unterstützt, weiß ich nicht. 
Aber wenn es ein Toolkit gibt, was das mal können sollte, dann wohl Qt, 
da es sehr viele Unterstützer hat.

von Bernhard (Gast)


Lesenswert?

Nachdem ich nun knapp ein Monat Erfahrung gesammelt habe, möchte ich mal 
ein kurzes Feedback geben:

Angefangen hab ich mit GTK+. Nach einigen Tagen des Programmierens hab 
ich aber eingesehen, dass GTK+ für meine Zwecke einfach nicht das 
richtige ist. Irgendwie fehlte mir nämlich eine gute Library zum Plotten 
von Realtime Daten. Da ich das Gefühl hatte, dass Matplotlib für meine 
Zwecke wohl ganz gut geeignet sein könnte, und ich nun doch schon etwas 
Erfahrung in GTK gesammelt hatte, wechselte ich kurzerhand zu PyGTK. Der 
Umstieg von C auf Python erwies sich eigentlich recht einfach (da war 
ich echt erstaunt!). Nach ein paar Tagen des Programmierens stieß ich 
aber bei PyGTK wieder auf Einschränkungen. Unter anderem konnte ich kein 
geeignetes Widget finden, um HTML Inhalte einfach darzustellen. Nach 
mehreren frustrierten Nächten hab ich PyGTK schließlich den Rücken 
gekehrt und bin zu PyQt gewechselt. Der Umstieg von GTK auf Qt ging 
verdammt flott. Innerhalb von nur wenigen Tagen hatte ich mein Programm 
auf Qt portiert. Mittlerweile arbeite ich nun schon seit knapp zwei 
Wochen mit PyQt und muss bin immer noch so begeistert wie am Anfang. 
Vorallem der Qt Designer hat es mir ziemlich angetan. Meines Erachtens 
ist der Qt Designer um einiges fortgeschrittener als der Glade Designer 
(das ist das Design Tool auf der GTK Seite).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.