Seas Leute. Ich bin auf der Suche nach einer Bibliothek mit der man so einfach wie möglich Fenster mit Buttons, Textfeldern usw. unter Windows erstellen kann, Sprache soll C++ unterstützt werden. SFML ist z.B super einfach, bietet aber kein GUI. Bin auf eure Antworten gespannt.
C++ und einfach passt nicht zusammen. GUI Frameworks für eine komplexe Sprache sind auch komplex. Wenn es einfach sein soll, Java + Swing oder C# + .net oder Python + Tkinter.
Gibt auch noch GTK. Finde ich persönlich einfacher als Qt, aber das mag subjektiv sein. Weiss aber nicht inwiefern noch Bibliotheken unter Windows für das Verwenden von GTK noch installiert werden müssen
Wenn es nur für Windows sein soll, dann tust du dich am einfachsten wenn du einfach die WinAPI nutzt: https://docs.microsoft.com/en-us/windows/win32/learnwin32/learn-to-program-for-windows https://riptutorial.com/winapi
Programmer schrieb: > Wenn es nur für Windows sein soll, dann tust du dich am > einfachsten wenn > du einfach die WinAPI nutzt: > > https://docs.microsoft.com/en-us/windows/win32/learnwin32/learn-to-program-for-windows > > https://riptutorial.com/winapi Wo wurdest du denn ausgegraben?
GTK+ ist sicherlich weit verbreitet, daneben dann noch FLTK und WxWidgets. Ich persönlich finde die von der Schwierigkeit ja alle gleich etwa. Schreib die drei jeweils auf einen Zettel und ziehe blind. Die Suche nach der "perfekten" Bibliothek wird kein Ende haben und dein Projekt wird nicht anfangen... https://de.wikipedia.org/wiki/Liste_von_GUI-Bibliotheken#C++
Beitrag #6278510 wurde von einem Moderator gelöscht.
Dann wirds wohl fltk sein. Macht eigentlich keinen schlechten Eindruck. Schade, dass SFML keine GUI Elemente hat.
ich bin kein fan von QT um ehrlich zu sein.. meistens sind die Resultate mir mangelhaft (ich sag nur avira) Ebenso kein Fan bin ich von ultimate++ ( ultimatepp.org ) Es ist nichteinmal ne Bibliothek sondern eine vollständige Programmierumgebung mit compiler und vordefinierten Bibliotheken und editor und und und... aaaaber es ist ziemlich nah an Einfach c++ und es kommt mit nem GUI Editor der zumindest ordentlich ist. Ausserdem kostet es nix und kann als portable App genutzt werden Ich würde es also dennoch in den Raum werfen wollen als "kann man mal ausprobieren" Ich gestehe für wirklich kleinkramigen kleinkram zum Hausgebrauch nutze ich das sogar selbst, obschon ich gerne und viel drüber schimpfe :D Eben weil der GUI Editor recht komplett ist und ich schnell ne brauchbare GUI hinspucken kann ohne mir auch nur Ansatzweise Mühe zu geben (wie gesagt: Hausgebrauch) 'sid
sid schrieb: > ich bin kein fan von QT um ehrlich zu sein.. meistens sind die Resultate > [von?] mir mangelhaft (ich sag nur avira) Du hast die Avira-Oberfläche verbrochen? Ohje. Aber schlechte Oberflächen kann man mit jedem Framework bauen, das hättest du sicher auch mit WinForms genausoschlimm hinbekommen. Aber die Frage bezog sich ja auf "So einfach wie möglich" und nicht auf "verhindert schlechte Designs"... Da sind Frameworks mit einem GUI-Editor schon im Vorteil, also Glade, QT-Designer, Windows-Forms-Designer usw. Buwe schrieb: > Fenster mit Buttons, Textfeldern klickt man dann einfach zusammen.
In einigen Projekten habe ich schon Win32++ zum Erstellen der Benutzeroberfläche verwendet. Win32++ enthält etliche Beispielprogramme. http://win32-framework.sourceforge.net/ Dann gibt es noch WxWidgets, was den Vorteil hat, dass man ein Programm auch für Linux übersetzen kann http://www.wxwidgets.org/
sid schrieb: > ich bin kein fan von QT um ehrlich zu sein.. meistens sind die Resultate > mir mangelhaft (ich sag nur avira) Ich bin kein Fan von Druckerzeugnissen um ehrlich zu sein.. meistens sind die Resultate mangelhaft (ich sag nur Bild) SCNR.
es gibt keine "einfachen" GUI-Framworks. Weder Qt noch U++, noch WinAPI sind "einfach", da man bei allen in die Konzepte und deren Logik einarbeiten muß, und die sind nunmal komplex. Eigentlich wäre C# das Mittel der Wahl, ist aber halt kein C++ Oliver
Entwiggler schrieb: > Du hast die Avira-Oberfläche verbrochen? Ohje Ne "mir mangelhaft" steht da nix von "für mich".. aber schön zu wissen, dass Du die auch scheisse findest. Das Design ist mir übrigens egal.. den cleanen look find ich nichtmalschlimm, dass sie 2GB Ram frisst ohne grund find ich kagge; das ist unter aller Sau! 'sid
Dennis S. schrieb: > Ich bin kein Fan von Druckerzeugnissen um ehrlich zu sein.. meistens > sind die Resultate mangelhaft (ich sag nur Bild) LOOOL Touché! Aber es gibt da mehrerer Beispiele für grauenhafte performance der GUI dank Qt.. mir fiel nur garad kein Zweites ein dass so weit verbreitet ist wie Avira. 'sid
WinForms, vom Marktführer. In der IDE vom Marktführer direkt unterstützt, da braucht es keine rangemurksten Schrott von Dritten wie Qt, Fltkack und den ganzen anderen Schrott aus den 90ern. Da bekommt man dann auch keinen Kotzanfall wenn man das Programm sieht oder muss 500MB Runtime mitinstallieren.
Avonberater a.D. schrieb: > WinForms, vom Marktführer. Könntest du die Liste mit den Marktanteilen bei GUI-Frameworks grad mal posten? Wäre recht interessant. > In der IDE vom Marktführer direkt unterstützt, da braucht es keine > rangemurksten Schrott von Dritten wie Qt, Fltkack und den ganzen anderen > Schrott aus den 90ern. Man merkt, dass du nicht viel Ahnung von modernen GUI-Frameworks hast. > Da bekommt man dann auch keinen Kotzanfall wenn man das Programm sieht oder > muss 500MB Runtime mitinstallieren. Aber auch nur, wenn die 5 GB an Runtime schon vorher in genau der benötigten Version installiert worden sind.
sid schrieb: > Aber es gibt da mehrerer Beispiele für grauenhafte performance der GUI > dank Qt.. Das Performance-Thema hat wohl kaum etwas mit Qt zutun sondern damit, was da im Hintergrund gemacht wird. Avonberater a.D. schrieb: > muss 500MB > Runtime mitinstallieren. Qt5 ist modular und die Größe der Libs zum Ausführen sind weit da drunter. Rolf M. schrieb: >> In der IDE vom Marktführer direkt unterstützt, da braucht es keine >> rangemurksten Schrott von Dritten wie Qt, Fltkack und den ganzen anderen >> Schrott aus den 90ern. > Man merkt, dass du nicht viel Ahnung von modernen GUI-Frameworks hast. Da hast du Recht.
> Das Performance-Thema hat wohl kaum etwas mit Qt zutun sondern damit, > was da im Hintergrund gemacht wird. Naja, Qt ist nicht nur eine Grafikbibliothek sondern auch eine RIESIGE Klassenbibliothek/Library. Man muss sich ja nur mal anschauen was man alles mit QString machen kann. Diese Bibliotheken sind nicht nur alle zufaellig dabei, sie werden auch von Qt selber genutzt. Man muss sich also auch damit auseinandersetzen ob einen das gefaellt oder nicht. Das ist natuerlich toll und macht vieles einfach wenn man es kann, aber zu Anfang ist das schon ein grosser Berg den man lernen muss. Das Problem ist IMHO das die Entwickler dieser Systeme immer vergessen das es auch Leute gibt die ihre Anwendung nicht 40h/Woche nutzen sondern nur ab und an mal eine Kleinigkeit machen wollen. Trotzdem bin ich aber der Meinung das sich der nicht unerhebliche Lernaufwand gerade bei Qt lohnt weil man dieses Wissen auf jedem System nutzen kann. (Win, Mac, Android, Symbian, Embedded) Olaf
jkzu schrieb: > Das Performance-Thema hat wohl kaum etwas mit Qt zutun sondern damit, > was da im Hintergrund gemacht wird. Naja das wär schön.. aber NULL wird im Hintergrund gemacht bei meiner HassGUI von Avira.. absolut exakt genau garnix! (drei threads, nahe NULL CPU last [0.7-1.3%], wahnwitzige Speicherlast) Nur dieser schitt "clean" StartGui mit den paar Buttons Wenn ich diese scheiss QT clean-gui hinter mir habe wird etwas gemacht und das ganze wird deutlichst performanter. (weit weniger Speicherlast, deutlich höhere CPU Last) Einstellungen ändern, Quarantäne säubern etc... alles läuft wunderbar, die GUIs da sind altertümlicher aber funktionieren tadellos.. das weisse startding ist schlicht scheisse! Ich halte die Jungs von Avira generell eher für begabt, ich würde soweit gehen zu sagen "leicht überdurchschnittlich begabt" sogar. aber das Ding ist eine absolute ZUMUTUNG (meine Karre hat 16 Zylinder und 96GB Hubraum es sollte ihr also möglich sein ne verkaggte Antivirus Start GUI über den Monitor zu ziehen) Aber da bin ich schneller durch n Olympischen Pool mit Honig geschwommen. Glücklicherweise muss man ja nur alle 400 Jahre mal die Einstellungen ändern sonst wär ich auch echt schon ramdösig geworden von dem scheiss. Und ja ich fürchte es liegt an Qt, denn ich hab aus diesem Grund schon mehr Software deinstalliert als mir lieb gewesen wäre, und immer war Qt im Spiel. Avira ist leider für mich immernoch Alternativlos, deswegen bleibt's halt. Man war das schön als QT noch QuickTime bedeutet hat und mein einziges Problem war den blöden Appple Player daran zu hindern sich in den Browser reinzuzecken. 'sid PS auf meiner alten Kiste läuft auch Avira (alte version ohne Qt.. single core cpu 2GB ram.. anklicken aufpoppen, weiterklicken.. flüssig wie's soll.. alles tutti!)
sid schrieb: > Avira ist leider für mich immernoch Alternativlos, deswegen bleibt's > halt. Tja, das ist jetzt eher dein persönliches Pech, und daß du nur diese eine Anwendung kennst, die auf Qt basiert, dein persönliches Unwissen. Ist dem Rest der Welt aber vermutlich völlig egal. Oliver
> Ist dem Rest der Welt aber vermutlich völlig egal.
Liest sich auch ziemlich wirr was er da schreibt. Vielleicht ist er
auch einfach ueberfordert.
Olaf
Falls ihr mal was perverses machen wollt: Ich hab letztens mal lvgl in Qt implementiert. Meine Intention dabei war einen komplexen Sourcecode der auf einem Mikrocontroller laeuft ein wenig komfortabler im Creator zu debuggen. Aber natuerlich koennte man mit sowas auch sehr einfach Grafikanwendungen schreiben die nur sehr wenig koennen und wo man wenig lernen muss. Als Bonus hat man dann die Moeglichkeit sein Programm hinterher einfach auf einem Mikrocontroller laufen zu lassen. Positiv ueberrascht hat mich lvgl dahingehend das es sich wirklich einfach so ohne Probleme auf und fuer den PC uebersetzen liess! Nur mal so als Idee was geht. :-) Olaf
> Lvgl hat doch schon selber eine PC Emulation?
Davon hab ich im Source nix gesehen. Es werden ja im Prinzip nur zwei
Routinen aufgerufen welche Pixel ausgeben. Die hab ich in Qt geschrieben
und von da an macht dann bei mir lvgl alles alleine.
Olaf
https://github.com/lvgl/lvgl#quick-start-in-a-simulator https://github.com/lvgl?q=lv_sim&type=&language= da gibt es mehrere Varianten. Aber wenn man es in seiner Lieblingsumgebung hat, umso besser.
Vincent H. schrieb: > imgui dürft in letzter Zeit recht beliebt sein: > https://github.com/ocornut/imgui Ich habe das mal ausprobiert und bin begeistert. Danke für den Tipp! Das Ding ist genauso genial wie banal: Jede Widget-Instanz ist ein einfacher Funktionsaufruf, und das war's auch schon :) In klassischen GUI-Bibliotheken muss man pro Widget i.Allg. folgendes tun: - das Widget instanziieren - das Widget registrieren (ok, geht oft auch automatisch bei der Instanziierung) - eine Callback-Funktion für das Auslesen des Widget-Status bei Änderungen durch den Benutzer schreiben und registrieren - zum Beschreiben des Widget-Status eine Memberfunktion aufrufen Bei Dear ImGui geht das alles tatsächlich in einem einzigen Funktionsaufruf. Entsprechend kurz und knackig wird der damit geschriebene GUI-Code. Es gibt keine Objekte (im Sinne der OOP), keine Callbacks und keine Events, weswegen der Einarbeitungsaufwand selbst für jemanden, der diese Begriffe noch nie gehört hat, sehr gering ist. Gemessen an der Vielzahl an implementierten Widget-Typen ist die Bibliothek sehr klein, sie umfasst gerade mal 700 KB. Damit wird sie üblicherweise nicht auf dem Zielsystem installiert, sondern einfach statisch gelinkt. Dear Imgui kann auf praktisch jedem Gerät benutzt werden, das OpenGL, Vulkan, DirectX oder Metal unterstützt. Auch Webbrowser-Anwendungen sind mittels Emscripten möglich. Hier ist eine Demo, die die meisten der implementierten Features zeigt: http://www.dearimgui.org/webdemo/master/example_emscripten.html Diese Anwendung, nativ auf einem PC kompiliert und statisch gelinkt, ist gerade mal 850 KB groß. Ich dachte immer, GUI-Programmierung sei die Domäne für die OOP. Hier wird aber gezeigt, dass es rein prozedural sogar noch einfacher und übersichtlicher geht. Bisher scheint dieser so genannte "Immediate Mode" vor allem in der Spieleentwicklung Anwendung zu finden. Ich bin mal gespannt, ob er künftig auch für "gewöhnliche" Anwendungen eine größere Rolle spielen wird. Die Bibliothek hat natürlich auch ihre Nachteile und Einschränkungen, aber für mich persönlich sind diese wenig relevant. Zudem lassen sich einige davon mit geringem Aufwand umgehen.
Ich werfe auch Qt + Qml in den Raum, nachdem es für kleine Firmen nun auch erschwinglich ist eine sehr interessante Sache.
Warum nicht Winforms, wpf oder Xamarin... Funktioniert auf anhieb
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.