Wenn Sie in C unter Windows programmieren - Petzolds Programmierfenster waren früher die Bibel für C-basierte Arbeit.
BEARBEITEN: Seit ich meine Frage beantwortet habe, wurde der Beitrag auf Linux aktualisiert. Ich werde die Post hier für jeden verlassen, der sie sucht, aber das trifft wirklich nicht auf Linux zu.
Was ist der beste Weg, GUI-Anwendungen mit C zu gestalten?
nicht, wenn Sie nicht müssen: -)
Ist es schwierig oder macht es einfach keinen Sinn, GUI-Anwendungen mit C zu erstellen?
Es ist nicht unbedingt so schwer, aber eine ziemlich redundante und ausführliche Aufgabe (wie das Schreiben von High-Level-Programmen in Assemblersprache), mit vielen wiederholten Boilerplate-Codes.
Persönlich finde ich es lohnender, einfach einen Skript-Interpreter (zB Lua, Nasal) mit Bindings für eine GUI-Bibliothek einzubetten und dann die Benutzeroberfläche in einer High-Level-Skriptsprache zu programmieren und nur den Kern der Anwendung selbst in C zu programmieren Python wurde bereits erwähnt, aber ich denke, dass eine dedizierte Erweiterungssprache wie Lua besser passt, weil es Ihren Quellcode nicht aufbläht und keine zusätzlichen Anforderungen (wie Bibliotheksabhängigkeiten oder Architektur) erzeugt.
Mit anderen Worten, die Einbettung von etwas wie Python, Perl oder Ruby kann relativ einfach sein (wegen der guten Dokumentation und Community-Dynamik), aber oft sind diese Sprachen komplexer als die Host-Anwendung selbst.
Dies ist auch der Ansatz der AlgoScore -Software, die einen eingebetteten Nasal-Interpreter mit GTK-Bindungen verwendet.
nCurses Bibliothek von alten DOS-Stil-GUIs in C.
GTK wäre für eine moderne GUI in Ordnung.
Verwenden Sie Qt für ein plattformübergreifendes Tool GUIs zu entwickeln win / Linux / mac / eingebettet / symbian
Viele qualitativ hochwertige GUI wurden in C mit zum Beispiel Windows API geschrieben. Es gibt keinen besonderen Grund warum nicht, aber die objektorientierte Programmierung war sehr erfolgreich beim Modellieren interaktiver Grafiken. GUI-Elemente ordnen sich irgendwie in C ++ - Objekte ein, die komplexes Verhalten hinter einer einfachen Schnittstelle kapseln können.
Es ist schwer genug (oder, meistens, ausführlich genug), dass die meisten Leute denken, dass es einfach keinen Sinn ergibt. Der GUI-Teil einer Anwendung reagiert (meistens) auf Benutzereingaben, daher ist Geschwindigkeit in diesem Bereich selten kritisch - ein Unterschied von einigen Mikrosekunden (oder sogar Millisekunden) macht selten einen großen Unterschied. Solange Antworten innerhalb von 100 ms (oder so) erscheinen, werden sie als "Instant" wahrgenommen.
Dynamisches Tippen funktioniert auch sehr gut für viele GUI-Programme. C verwendet nur statische Typisierung.
Tags und Links c user-interface design