GUI in C?

T_T

Commodore Special
Mitglied seit
19.05.2004
Beiträge
452
Renomée
1
Hallo! Bin gerade dabei nen bisschen C zu lernen, aber irgendwie finde ich nirgends eine ergiebige Quelle zum Thema GUI in C. Hat da jemand vielleicht einen "Literaturtip" (besser Internetseite, kostet nichts ;)).

Bei Java geht das ja ganz komfortabel, da kann man dann hier und dort einen button hinzufügen und die Listener entsprechend konfigurieren etc, aber in C scheint es mir fast so als sei GUI ein "Tabuthema"?
 
Du scheinst hier etwas durcheinander zu bringen. Eine Programmiersprache hat mit einem GUI erstmal nix zu tun. Prinzipiell eignet sich jede Sprache dazu, eine grafische oder auch textgebundene Oberfläche zu erstellen, die eine Sprache mehr, die andere weniger. Beim JDK von Sun sind entsprechende Klassenbibliotheken schon mitgeliefert, so dass sich der Entwickler darum keine Gedanken machen muss. Grundsätzlich sind diese Bibliotheken aber nicht Bestandteil der Sprache.
Anbieter von integrierten Entwicklungsumgebungen liefern auch zumeist einen großen Satz an entsprechenden Bibliotheken mit, auf die der Entwickler zurückgreifen kann. So sind z.B. bei Delphi oder C++-Builder von Borland oder bei Visual Studio von MS entsprechende Klassen enthalten.
Es gibt aber auch von speziellen Compilern vollkommen unabhängige Bibliotheken für GUIs, wie z.B. Qt, wxWidgets, GTK oder ncurses. Dies dürfte genau das sein, wonach du hier suchst. Die ersten drei genannten Bibliotheken realisieren graphische Oberflächen (und noch einiges mehr), während ncurses textbasiert ist. Sie lassen sich alle in C ansprechen, wobei Qt und wxWidgets in C++ geschrieben, und in erster Linie dafür ausgelegt sind. GTK und ncurses sind in C geschrieben, lassen sich aber auch via C++ ansprechen.
Grundsätzlich würde ich dir aber empfehlen, erstmal mit Console-Anwendungen zu beginnen, gerade bei C.
 
Jep, fang erstmal einfach an. QT wird dich mit seinem Funktionsumfang sonst erstmal umhauen. GTK ist am Anfang erstmal deutlich einfacher, und es gibt auch Ports auf C++ (GTKmm - also das ist auch objektorientiert).

In der Liste von Puck fehlt noch die windoofs GUI, das ist auch nur eine von vielen.
 
Aber ein Fenster mit 3 Buttons drinnen ist viel schneller realisiert als mit QT ;).
 
Was ist denn in Qt daran umständlich? Und wenn ich es wirklich schnell und einfach haben will, dann nehme ich den Designer dafür.
 
Hab jetzt keine Lust das auszudiskutieren ;). In GTK hat ein Hello World Prog 5 Zeilen oder so, da kann QT einfach net mithalten. QT erschlägt dich mit haufenweise Klassen, Namespaces usw. GTK ist da einfach mehr straight forward.
 
Nun ja, ist halt Ansichtssache. C++-Programme sind Prinzip bedingt (etwas) umfangreicher als ihre C-Pendants. Ich finde aber, dass das gerade der Übersichtlichkeit und dem Verständnis dient. Muss halt jeder Entwickler für sich entscheiden, was er als praktischer empfindet. :)
 
Hi, danke für Eure Antworten. So neu bin ich in C auch nicht, hab ja wiegesagt Java-Erfahrung und programmiere hobbymäßig Mikrocontroller in C (nur ist da halt recht wenig mit GUI, Bibliotheken und Co zu machen :D).

Nun habe ich aber noch einmal eine Frage: Qt und GTK kenne ich nur aus der Linux-Welt, unter Windows bleiben mir also nur kommerzielle Produkte wie V.Studio oder Borland?
 
Nein, Dev-C++ geht zB. auch. Die Windoofs GUI ist auch nur ein Programmiermodell, das sich mal irgendwer ausgedacht hat, genauso wie Qt und GTK - und es lässt sich auch ähnlich programmieren (bindest ein paar header ein, linkst eine lib dazu und fertig).

Such mal nach GDI Programmierung oder so, müsste dann passen. Das geht zB. schon in die Richtung: http://www.functionx.com/win32/Lesson10.htm

Aber erwarte nicht, dass die windoofs GUI überaus komfortable zu programmieren ist ;).
 
Aber erwarte nicht, dass die windoofs GUI überaus komfortable zu programmieren ist ;).

Da es aber auch Qt, GTK und wxWidgets für Windows gibt, kann man die natürlich auch alternativ zur direkten Programmierung des Windaus-GUI nehmen. Der große Vorteil daran ist, dass die Programm dann auch portabel sind. ;D
 
Such mal nach GDI Programmierung oder so, müsste dann passen. Das geht zB. schon in die Richtung: http://www.functionx.com/win32/Lesson10.htm
GDI(+) braucht man für 08/15-GUIs aber eigentlich nicht.


@T_T

Wenn Du unter Windows wirklich direkt mit der Win32-API GUIs programmieren willst, sieh Dir mal das an:
http://www.relisoft.com/win32/index.htm
http://www.winprog.org/tutorial

An Deiner Stelle würde ich aber eher zu einem der oben genannten Frameworks greifen, ist einfach komfortabler, mächtiger, übersichtlicher.
 
Für die GUI-Programmierung unter Windows mit C++ sollte man sich auch mal WTL ansehen.
 
Hallo! Habe jetzt den Borland C++Builder bekommen. prinzipiell genau sowas wie ich gesucht habe, leider macht der standardmäßig aber nur C++-Projekte mit GUI? Wenn ich File->New und dann c-File auswähle habe ich eine leere .c-Datei. Aber wie erstelle ich ein neues C-Projekt mit Form?
 
Borland C++ Builder und Visual Studio bieten kein GUI Framework für C an!
Die Frameworks basieren immer auf einer Klassenbibliothek, also C++, welche mehr oder weniger elegant auf der Windows API aufsetzen.
Wer in C eine Windows-GUI programmieren will, muss entweder eine (z.B. der bereits im Thread genannten) Bibliothek benützen, oder direkt auf der Win-API aufsetzen. Letzteres verlangt einiges an Einarbeitung. Begriffe wie Windows-Nachrichtenschleife, Nachrichtenverabeitung, Ereignissteuerung, Resourcenscripts etc. wollen dazu verstanden werden.
Ein gutes Buch wie z.B, der Petzhold http://www.amazon.de/exec/obidos/ASIN/3860631888/qid%3D1141477351/sr%3D8-4/ref%3Dpd%5Fka%5F4/028-4359991-8874952, ist bestimmt hilfreich. Das Buch geht jedenfalls auf sehr viele Themen der WIN API-Programmierung (insbesondere die GUI) ein. Habe ich selbst Ende der 90er benutzt.

Aber warum willst Du unbedingt in C eine GUI basteln?
Für meinen Fall war das damals ganz ok, brauchte ein scrollbares Textfenster, ein einfaches Menü und ein paar Dialogboxen, von denen ich eine sogar automatisch per Programm erzeugt habe. Das lief damals sogar erst unter Win16 und wurde dann auf Win32 portiert.
Heute und vor allem dann, wenn die Anwendung etwas komplexer ist, würde ich für die GUI ein C++ Framework benützen. Mit dem Borland C++ Builder sollte das ganz easy gehen.

Ciao,
Ray
 
Zuletzt bearbeitet:
GTK setzt auf C auf und ist auch dafür ausgelegt das in C zu programmieren, dürfte also in jedem Fall einfacher sein als direkt die win gui zu programmieren.
 
Zurück
Oben Unten