Hallo, mal ganz konkret in die Runde: Wenn ich eine relativ einfache Desktopanwendung für Linux LXDE schreiben will (geht hauptsächlich um Kommunikation mit Serialport), welche Sprache bietet sich an, bei der das GUI Design ähnlich einfach funktioniert, wie im Visual Studio für C# / vbnet per Drag-and-Drop wo man die Buttons per Maustaste skalieren kann, Labeleigenschaften wie Farbe und Größe in den Settings festlegen kann, und nicht für jede Kleinigkeit Codezeilen schreiben muss? Danke...
Qt als Toolkit und C++ als Sprache. Damit ist auch der Großteil von LXDE gemacht. Qt gäbe es auch mit Python als Sprache, wenn dir C++ nicht liegt. # apt install qtcreator
:
Bearbeitet durch User
Ich denke auch das Qt die richtige Wahl ist. Aber ein bisschen Einarbeitung ist da schon notwendig. Lohnt sich aber weil man im Ergebnis dann Programme fuer Linux, Windows, Apple und Android schreiben kann. Vanye
QT ist schon eine recht fetter Brocken. Meine Meinung. Ich würde es mit Purebasic machen. https://www.purebasic.com/ Ja, jetzt rollen alle mit den Augen. Macht aber nichts :) Ist kostenlos bis zu einer gewissen Anzahl Zeilen. Die hat bei mir für kleinere Anwendungen (war auch oft mit serial Port) immer gereicht. Und sonst sind 79€ für solch eine Software auch ein Witz, im Sinne von preiswert. Du kannst die kostenlose Variante so runterladen und nutzen. Man braucht nur die IDE. Unter Windows läuft das auch. Man bekommt nur EINE Datei hinterher als Executable die für dich lauffähig ist. Ohne erst noch irgendetwas an Libraries Installieren zu müssen.
:
Bearbeitet durch User
900ss D. schrieb: > Ich würde es mit Purebasic machen. > https://www.purebasic.com/ Ich auch. Einfach, schnell und unkompliziert. In der Zeit wo die "relativ einfache Desktopanwendung" in PB bereits fertig ist, lernt er bei QT noch Kapitel 3.
Εrnst B. schrieb: > Qt als Toolkit und C++ als Sprache. Damit ist auch der Großteil von LXDE > gemacht. > Qt gäbe es auch mit Python als Sprache, wenn dir C++ nicht liegt. +1 für Qt in Verbindung mit Python. GUI-Design mit dem Qt-Creater. Qt mit C++ beißt sich mit > relativ einfache Desktopanwendung
Michael H. schrieb: > In der Zeit wo die "relativ einfache Desktopanwendung" in PB bereits > fertig ist, lernt er bei QT noch Kapitel 3. :) Daumen hoch... Auch wenn man QT in Verbindung mit Python nutzt. QT ist eben kein Leichtgewicht.
Le X. schrieb: > Εrnst B. schrieb: >> Qt als Toolkit und C++ als Sprache. Damit ist auch der Großteil von LXDE >> gemacht. >> Qt gäbe es auch mit Python als Sprache, wenn dir C++ nicht liegt. > > +1 für Qt in Verbindung mit Python. > GUI-Design mit dem Qt-Creater. > > Qt mit C++ beißt sich mit >> relativ einfache Desktopanwendung Finde ich nicht... Einfache Dinge gehen in Qt einfach. Wenn er C++ kann, dann ist mit dem QtCreator 95% vom GUI Code erledigt. Wenn er C++ nicht kann (Qt liebt Templates, Lambdas und alles was ein modernes C++ so hergibt), dann würde ich eine der Beispiele, die im 1. Post stehen nehmen (also C# oder VB.net). Es gibt ja Mono... 73
900ss D. schrieb: > QT ist schon eine recht fetter Brocken. Meine Meinung. Bietet dafür halt auch sehr viel. Le X. schrieb: > Qt mit C++ beißt sich mit >> relativ einfache Desktopanwendung Ich finde, dass es mit Qt relativ einfach ist, allerdings nur, wenn man C++ schon beherrscht. Liftboy 3. schrieb: > wo man die Buttons per Maustaste skalieren kann In Qt nutzt man schon seit der ersten Version normalerweise Layouts, die sich automatisch um die richtige Größe und Position kümmern. Diese Layouts kann man dann sehr flexibel konfigurieren
Michael H. schrieb: > Einfach, schnell und unkompliziert. In der Zeit wo die "relativ einfache > Desktopanwendung" in PB bereits fertig ist, lernt er bei QT noch Kapitel > 3. Wenn es unbedingt was basicartiges sein soll kann er auch gleich GAMBAS nehmen, das kostet nix, man kann sich die GUI zusammenklicken und Serialportzugriff geht damit auch: Klickbunti-Screenshots: https://gambas.sourceforge.net/en/main.html# Bsp Serialportzugriff: https://gambas-buch.de/dwen/doku.php?id=k24:k24.1:k24.1.5:start
Liftboy 3. schrieb: > Hallo, > > mal ganz konkret in die Runde: > > Wenn ich eine relativ einfache Desktopanwendung für Linux LXDE schreiben > will (geht hauptsächlich um Kommunikation mit Serialport), welche > Sprache bietet sich an, bei der das GUI Design ähnlich einfach > funktioniert, wie im Visual Studio für C# / vbnet per Drag-and-Drop wo C# mit Avalonia. https://avaloniaui.net/ Drag&Drop designer hat es nicht (XAML), dafür beim rest unschlagbar.
Also, wenn schon PureBasic erwähnt wird, dann sollte man auch Lazarus (Delphi-Clone) ins Spiel bringen. Ist halt (Objekt-)Pascal. Es hat einen wirklich brauchbaren GUI-Designer, der stark in die Richtung geht, den du dir wünscht. https://www.lazarus-ide.org Wie schnell es geht, hängt primär davon ab, wie gut (schnell) du dich in die zu Grunde liegende Sprache einarbeiten kannst. Prinzipiell sind hier viele gut geeignet. Für GUI-Skripte verwende ich z.B. gerne Qt+Python. https://www.pythonguis.com/pyqt5-tutorial. Oder halt dann gleich C++ https://doc.qt.io/qt-5/qtexamplesandtutorials.html Von Qt6 lasse ich zzt. (noch) die Finger, wegen der geänderten Lizenzpolitik. Das hinter Qt eine (IMHO) großes Softwareunternehmen steht, hat viele Vorteile (u.a. gutes Bug-Fixing, eine wirklich große Auswahl an Möglichkeiten) aber halt auch Nachteile, dass sie Geld verdienen müssen... Lediglich "reines" C würde ich für hier (GUI auf Desktop) nicht (mehr) verwenden. Gerne würde ich z.B. go zusammen mit gtk als Desktop-GUI-Lösung verwenden, aber das ist einfach noch eine zu kleine Nische...
Klaus R. schrieb: > Von Qt6 lasse ich zzt. (noch) die Finger, wegen der geänderten > Lizenzpolitik. Ich habe mal gelesen, dass man vor der Verwendung von Qt (für nicht-private Zwecke) zwei Fachanwälte konsultieren sollte. Aus den fünf Meinungen kann man sich dann eine aussuchen; es wird immer die falsche sein. Ist aber schon eine Weile her, vielleicht hat sich diesbezüglich ja etwas geändert. https://www.qt.io/terms-conditions https://www.qt.io/licensing/open-source-lgpl-obligations https://doc.qt.io/qt-5/licenses-used-in-qt.html https://www.qt.io/pricing
Ich hätte da noch eine aktuelle Pascal-Variante anzubieten: CodeTyphon Studio - https://www.pilotlogic.com/sitejoom/ Sollte man sich allerdings Abseits von x86-x64 bewegen, wird min. 64 GB Platz benötigen. Nachder Installation auf einem ROCK 4 SE, waren von 32GB nur noch 12GB frei.
Sabi schrieb: > Ich habe mal gelesen, dass man vor der Verwendung von Qt (für > nicht-private Zwecke) zwei Fachanwälte konsultieren sollte. Qt kannst du unter der LGPL benutzen. Selbe Lizenz wie z.B. GTK. Wenn du vorhast Raubmordschwarzkopierverbrechen zu begehen, ist das bei beiden Toolkits verboten. Bei Qt ist allerdings die Wahrscheinlichkeit höher dass du erwischt wirst, weil eine Firma dahintersteht die ein Auge darauf hat. Aber im Gegensatz zur GTK hast du bei der Qt die Möglichkeit, dich durch $$$ von deinem Vergehen freizukaufen.
Roger S. schrieb: > Liftboy 3. schrieb: >> Hallo, >> >> mal ganz konkret in die Runde: >> >> Wenn ich eine relativ einfache Desktopanwendung für Linux LXDE schreiben >> will (geht hauptsächlich um Kommunikation mit Serialport), welche >> Sprache bietet sich an, bei der das GUI Design ähnlich einfach >> funktioniert, wie im Visual Studio für C# / vbnet per Drag-and-Drop wo > > C# mit Avalonia. > https://avaloniaui.net/ > > Drag&Drop designer hat es nicht (XAML), dafür beim rest unschlagbar. C# auf Linux... Man hole die nassen Fetzen.
Liftboy 3. schrieb: > wie im Visual Studio für C# / vbnet per Drag-and-Drop wo > man die Buttons per Maustaste skalieren kann, Labeleigenschaften wie > Farbe und Größe in den Settings festlegen kann, und nicht für jede > Kleinigkeit Codezeilen schreiben muss? Zusammenclicken habe ich anfangs auch immer gedacht, aber Programmieren ist am Ende dann doch schneller / flexibler. Ich bin bei wxPython gelandet.
Ich werfe da noch B4J (kostenlos bei B4X.com) rein. Die haben auch einen guten Designer (auch für B4A) und mann kann vorerst mal für Windows was vorentwickeln. Wenn dann alles läuft, kann man es zu Linux portieren. Für das compilieren für Linux gibt es da auch noch extra einen Packager. Ich glaube, der ist in der neusten Version schon in B4J drin. Allerdings muß man das komplette JAVA - SDK und Oracle-SDK vorher installieren.
:
Bearbeitet durch User
> In Qt nutzt man schon seit der ersten Version normalerweise Layouts, die > sich automatisch um die richtige Größe und Position kümmern. Ja, aber trotzdem kann es manchmal zu interessanten Effekten kommen wenn Zielgeraete stark unterschiedliche Aufloesungen haben. Ich merke das manchmal bei Sachen die auf dem Handy und auf dem Desktop laufen sollen. Da passt dann schonmal die Beschriftung eines Buttons nicht, oder man braucht eine Lupe, bei einem anderen Geraet mit aehnlicher Aufloesung geht es dann aber. Kann aber auch daran liegen das ich noch mit 5.12.4 arbeite. Aber ich update nicht alle Nase lang und habe auch irgendwas komisches wegen ihren Lizenzen im Hinterkopf. Vanye
Klaus R. schrieb: > Von Qt6 lasse ich zzt. (noch) die Finger, wegen der geänderten > Lizenzpolitik. Das hinter Qt eine (IMHO) großes Softwareunternehmen > steht, hat viele Vorteile (u.a. gutes Bug-Fixing, eine wirklich große > Auswahl an Möglichkeiten) aber halt auch Nachteile, dass sie Geld > verdienen müssen... Kann ich nachvollziehen, ich bin größtenteils schon bei Qt6... Vorteile überwiegen... da hat sich doch brutal viel getan... Vanye R. schrieb: > Da passt dann schonmal die Beschriftung eines Buttons nicht, oder man > braucht eine Lupe, bei einem anderen Geraet mit aehnlicher Aufloesung > geht es dann aber. Kenne ich nur unter Windows und das dürfte mit dem nicht funktionierenden Font Rendering unter Windows zu tun (gab vor kurzen einen Heise Artikel über dieses seit jahren bestehende Problem). Ansonsten geht eine Android-GUI nur sauber mit QML. Die normalen Widgets werden anscheinend nicht native gezeichnet, sondern von Qt selbst. Das ergibt dann am Android eine nicht so hübsche GUI, die sich irgendwie nicht sauber in das restliche look-and-feel eingliedert. Da will/wollte man irgendwie die Leute zu QML zwingen... Aber anscheinend rudern sie da schon etwas zurück. 73
Rolf M. schrieb: > Bietet dafür halt auch sehr viel. Ja, wenn man es braucht ist das sinnvoll. Ich habe den TO anders verstanden.
900ss D. schrieb: > Rolf M. schrieb: >> Bietet dafür halt auch sehr viel. > > Ja, wenn man es braucht ist das sinnvoll. Ich habe den TO anders > verstanden. Naja er hat ja auch geschrieben... Liftboy 3. schrieb: > wie im Visual Studio für C# / vbnet per Drag-and-Drop ... dann wäre Mono eigentlich das was er sucht... also direkt C# bzw vb.net :)
Hans W. schrieb: > Naja er hat ja auch geschrieben... > Liftboy 3. schrieb: >> wie im Visual Studio für C# / vbnet per Drag-and-Drop > > ... dann wäre Mono eigentlich das was er sucht... also direkt C# bzw > vb.net :) Ja, stimmt, das ist schon was :) Ich hab das anders verstanden und ich fürchte dass Drag&Drop mit Purebasic auch geht. ;) Liftboy 3. schrieb: > Wenn ich eine relativ einfache Desktopanwendung für Linux LXDE schreiben > will (geht hauptsächlich um Kommunikation mit Serialport),
:
Bearbeitet durch User
Liftboy 3. schrieb: > Wenn ich eine relativ einfache Desktopanwendung für Linux LXDE schreiben > will (geht hauptsächlich um Kommunikation mit Serialport), welche > Sprache bietet sich an, bei der das GUI Design ähnlich einfach > funktioniert, wie im Visual Studio für C# / vbnet per Drag-and-Drop wo > man die Buttons per Maustaste skalieren kann, Labeleigenschaften wie > Farbe und Größe in den Settings festlegen kann, und nicht für jede > Kleinigkeit Codezeilen schreiben muss? Ist doch klar: Du entwickelst die Anwendung einfach so komfortabel wie gewohnt im VisualStudio und läßt sie dann auf dem Target unter Mono laufen. Dazu muß natürlich im Target die Mono-Laufzeitumgebung installiert sein. Für in VB.Net geschriebene Programme (und manchmal auch für in C# geschriebene) ist bei der üblichen Paketierung leider zu "mono-complete" oder wie immer das (schwachsinnigerweise) gerade bei der jeweiligen Distro heißt, noch das mono-Paket für die VB-Unterstützung nachzuinstallieren. Da waren definitiv schon bei der Paketierung Basic-Hasser am Werk, also Idioten, die nicht verstanden haben, das VB.net was völlig anderes ist als klassische BASIC-Dialekte, nämlich eine vollwertige OO-Sprache... However, nachdem aller nötiger Paket-Scheiß installiert ist, sollte deine Anwendung zumindest erstmal starten. Verbleibende Probleme bekommst du entweder 1) als Fehlermeldung der Runtime um die Ohren gehauen (late binding zu irgendwelchen DLLs) oder 2) du siehst sie einfach, weil das GUI etwas Scheiße aussieht oder 3) das Programm sich nicht so verhält, wie du erwartest. Lösung zu 1) Du kannst keine DLLs jenseit von .Net einbinden. Das ist schlicht nicht portabel. Kannst du nur weglassen. Lösung zu 2) Resultiert fast immer aus der Tatsache, dass die Text-Renderer beim Abschätzen der Länge eines Textes mehr oder weniger großen Unfug liefern. Das ist schon rein unter Windows so und unter Linux noch schlimmer. Zumindest durch Mono hindurch. Aber auch nativ sieht es keinesfalls viel besser aus, wie man oft genug auch in einer QT-Umgebung feststellen kann... Also: einfach mehr Platz für die Texte im GUI vorsehen. Lösung zu 3) Hier ist fast immer die eigene Idiotie des Programmierers schuld. Meistens sind es bestimmte Annahmen über den Aufbau von Dateipfaden und Gerätenamen. Da musst du dann einfach nachbessern.
Hier mal ein 5 Minuten Tutorial wie man mit QT eine GUI Anwendung schreibt, die nach Klick auf einen Button etwas über den seriellen Port sendet. http://stefanfrings.de/serial_io/index.html#qtexample So viel dazu, dass einfache Aufgaben damit einfach und schnell erledigt sind. Ich habe noch ein umfangreicheres Tutorial: http://stefanfrings.de/qt_lernen/index.html
DSGV-Violator schrieb: > https://de.wikipedia.org/wiki/Tk_(Toolkit) Das scheint auch schon seit Jahren vor sich hinzuverotten.
Herbert B. schrieb: > DSGV-Violator schrieb: >> https://de.wikipedia.org/wiki/Tk_(Toolkit) > > Das scheint auch schon seit Jahren vor sich hinzuverotten. Inwiefern? Die 8.6.13 ist vom Ende letzten Jahres.
:
Bearbeitet durch Moderator
Beitrag #7475560 wurde von einem Moderator gelöscht.
Chris D. schrieb: > Die 8.6.13 ist vom Ende letzten Jahres. Oh da habe ich dann veraltete Infos. Gerade mal unter Linux getestet, oha die Widgets sehen jetzt auch modern aus. Da war ich da wohl falsch informiert.
Herbert B. schrieb: > Chris D. schrieb: >> Die 8.6.13 ist vom Ende letzten Jahres. > > Oh da habe ich dann veraltete Infos. > > Gerade mal unter Linux getestet, oha die Widgets sehen jetzt auch modern > aus. Da war ich da wohl falsch informiert. Das ist aber nicht wirklich neu. Die TTK-Widgets (also mit einstellbarem Theme) gibt es schon länger. Genauer: seit 8.5 - oder 2006 ;-) Hier eine (unvollständige) Liste von Themes: https://wiki.tcl-lang.org/page/List+of+ttk+Themes
Freepascal mit Lazarus https://www.lazarus-ide.org Die Programme sind dann auch unter Linux und Windows etc lauffähig
Wir erstellen in der Firma alle Projekte mit Xojo. Nicht kostenlos, aber sensationell flexibel. Compilate ohne weitere Anhängigkeiten (!) aus dem gleichen Quellcode können für Win, Linux (x86 und ARM, PC und Raspi), und MacOS/iOS (x86 und ARM/M1/M2) erstellt werden.
Max M. schrieb: > Die Programme sind dann auch unter Linux und Windows etc lauffähig Nicht ganz. Man muss sie schon fuer das entsprechende OS kompilieren.
Andreas B. schrieb: > Nicht ganz. Man muss sie schon für das entsprechende OS kompilieren. Logisch, du kannst aber auch Hybrid Dateien mit Freepascal /Lazarus erstellen. Ein und die selbe Datei (.exe z.B.) läuft dann sowohl unter Windows als auch unter Linux
ich wurde auch PYQt empfehlen. Mit minimaler Python Wissen, und ein youtube Tutorial solltest du in weniger als einem Tag einen eingachen Gui am laufen haben. Du kannst mit pyinstaller dein GUI dann auch als exectuable generieren und deine User mussen kein python istallieren.
Max M. schrieb: > Ein und die selbe Datei (.exe z.B.) läuft dann sowohl unter Windows als > auch unter Linux Ach. Wie soll der Linux-Programmlader herausfinden, was er mit dem PE-Format einer Windows-Exe-Datei anfangen soll?
Harald K. schrieb: > Wie soll der Linux-Programmlader herausfinden, was er mit dem > PE-Format einer Windows-Exe-Datei anfangen soll? Nach meinem Kenntnisstand kann Linux durchaus *.exe Dateien laden und ausführen. Die Ausführung bricht erst an der Stelle ab, wo das Programm Bibliotheken laden will oder System-Calls macht, die unter Linux nicht existieren.
Komisch - das einfachste wurde gar nicht genannt. Nutze einfach den WebStack (HTML, JS, CSS, NodeJS) in Kombination mit einem Framework wie Electron. Alternativ gibt es die .NET Linux Alternative Mono. Dann kannst du direkt mit C# die GUI zusammenklicken.
C-hater schrieb: > Ist doch klar: Du entwickelst die Anwendung einfach so komfortabel wie > gewohnt im VisualStudio und läßt sie dann auf dem Target unter Mono > laufen. Vorweg: ich kenn mich mit dem Zeug von Microsoft nicht aus, und mit dem von Miguel de Icaza noch weniger. Aber als Entwickler schaut man immer auch mal nach links und rechts, ob es da nicht was Schickes gibt, das einem vielleicht entgehen könnte, und so habe ich mir vor einigen Jahren mal dieses Mono angeschaut. Leider waren allerdings grössere Teile des .NjET-Frameworks dort gar nicht enthalten und nicht einmal als käufliche Komponenten erhältlich. Es ist zu lange her und ich kann mich nicht mehr erinnern, was das genau war, aber zu den nicht vorhandenen Komponenten gehörten Teile der GUI und IIRC die Datenbank-Treiber. Hat sich da etwas geändert? Sonst wäre Mono extrem eingeschränkt, in der Praxis völlig unbrauchbar und sicher keine sehr gute Empfehlung.
˙ɟ uɐɟǝʇs schrieb: > Nach meinem Kenntnisstand kann Linux durchaus *.exe Dateien laden und > ausführen. Nativ eher nicht, nein, aber mit einer entsprechenden Konfiguration für binfmt_misc und Wine könnte da etwas gehen. Aber andersherum wird viel eher ein Schuh draus, denn MS Windows kann ELF-Dateien ausführen -- schließlich ist diese Fähigkeit die Basis der WSL-Subsysteme.
Mat. K. schrieb: > ich wurde auch PYQt empfehlen. > Mit minimaler Python Wissen, und ein youtube Tutorial solltest du in > weniger als einem Tag einen eingachen Gui am laufen haben. > Du kannst mit pyinstaller dein GUI dann auch als exectuable generieren > und deine User mussen kein python istallieren. Ein weiterer Vorzug von Python wäre die deutlich über QT hinausgehende Infrastruktur etwa mit Bibliotheken zur schnellen Datenverarbeitung und -Visualisierung. Wenn der TO einmal mehr mit seinen seriellen Daten tun möchte, ist Python zweifellos eine besonders gute Wahl.
Some O. schrieb: > Mono [...] Leider waren allerdings grössere Teile des .NjET-Frameworks dort > gar nicht enthalten. [...] > Hat sich da etwas geändert? Mono (Xamarin) gehört jetzt Microsoft. Das ".NET Framework" wird nicht mehr weiter entwickelt. Dafür gibt es jetzt ".NET Core" (ab Version 5 nur noch ".NET"), das Open Source ist und Linux unterstützt. Die Ausnahme sind GUI-Bibliotheken; dafür gäbe es z.B. Avalonia.
Max M. schrieb: > Freepascal mit Lazarus Pech gehabt. Wenn du schon meine Screenshots klaust (gut zu erkennen an der fvwm-Dekoration), dann müsstest du richtig klauen. ;-) In diesem Falle handelt es sich um ein Qt-Programm. Ich wollte das mal als Testballon für eine Lazarus-Portierung benutzen, ist aber nie geworden. Habe ich dann sogar mal "richtig" opensourced: https://github.com/dl8dtl/tek492
:
Bearbeitet durch Moderator
Harald K. schrieb: > Max M. schrieb: >> Ein und die selbe Datei (.exe z.B.) läuft dann sowohl unter Windows als >> auch unter Linux > > Ach. Wie soll der Linux-Programmlader herausfinden, was er mit dem > PE-Format einer Windows-Exe-Datei anfangen soll? Also es ist schon Jahre oder 10 Jahre her..daher weiß ich es nicht mehr genau. Hatte es damals eher durch Zufall entdeckt, das es auch Hybriddateien gibt Ganz normal mit LH xxx.exe oder so, dazu braucht es kein Wine doer sowas. Redet nicht immer so einen Unsinn. Wenn ihr etwaqs nicht kennt, befolgt den Tipp den ihr selber immer gebt, googelt es und lest euch ein was eine Haybriddatei ist und wie das unter Linux funktioniert!
Was für ein Kindergarten was ist dein Problem?! Das Foto dient als Symbol für so sieht es aus. Und dann nehme ich halt ein anderes Was für ein Kindergarten. Meinst du auf dem Foto erkennst du ein Unterschied ob es ein C oder PAscal Programm ist?! Jörg W. schrieb: > Max M. schrieb: >> Freepascal mit Lazarus > > Pech gehabt. Wenn du schon meine Screenshots klaust (gut zu erkennen an > der fvwm-Dekoration), dann müsstest du richtig klauen. ;-) In diesem > Falle handelt es sich um ein Qt-Programm. Ich wollte das mal als > Testballon für eine Lazarus-Portierung benutzen, ist aber nie geworden. > > Habe ich dann sogar mal "richtig" opensourced: > > https://github.com/dl8dtl/tek492
Warum fragst Du Frösche, wenn Du auch die KI befragen kannst? Frage: Welche Programmiersprache ist für ein einfaches GUI Design gut geeignet? Antwort: Für ein einfaches GUI Design sind mehrere Programmiersprachen gut geeignet. Hier sind einige Beispiele: Python: Python ist eine beliebte Programmiersprache für GUI-Design, da sie eine große Auswahl an Bibliotheken und Frameworks bietet, die das Erstellen von Benutzeroberflächen erleichtern, wie z.B. Tkinter, PyQT und PyGTK. Java: Java ist eine weitere häufig verwendete Programmiersprache für GUI-Design. Sie bietet eine umfangreiche Sammlung von Bibliotheken und Frameworks, wie z.B. Swing und JavaFX, die das Erstellen von Benutzeroberflächen vereinfachen. C#: C# ist eine Programmiersprache, die speziell für die Entwicklung von Windows-Anwendungen entwickelt wurde. Sie bietet eine leistungsstarke GUI-Entwicklungsumgebung namens Windows Presentation Foundation (WPF), die das Erstellen von ansprechenden Benutzeroberflächen ermöglicht. JavaScript: JavaScript ist eine weit verbreitete Programmiersprache für die Webentwicklung und eignet sich auch gut für die Erstellung von GUIs. Mit Hilfe von Bibliotheken und Frameworks wie React, Angular und Vue.js können interaktive Benutzeroberflächen erstellt werden. HTML/CSS: Obwohl HTML und CSS keine Programmiersprachen im eigentlichen Sinne sind, können sie verwendet werden, um einfache GUIs für Webanwendungen zu erstellen. Mit Hilfe von JavaScript kann die Funktionalität der Benutzeroberfläche erweitert werden. Die Wahl der Programmiersprache hängt von den spezifischen Anforderungen und Präferenzen des Entwicklers ab. Es ist wichtig zu beachten, dass GUI-Design nicht nur von der Programmiersprache abhängt, sondern auch von den verwendeten Bibliotheken und Frameworks. ;)
Tom A. schrieb: > HTML/CSS: Obwohl HTML und CSS keine Programmiersprachen im eigentlichen > Sinne sind, können sie verwendet werden, um einfache GUIs für > Webanwendungen zu erstellen. Mit Hilfe von JavaScript kann die > Funktionalität der Benutzeroberfläche erweitert werden. Beispielhaft für die typisch schwammig-aufgeblähten bis sachlich nahezu falschen Ergüsse dieser „KI“ … Mit JavaScript kann die Funktionalität nicht nur „erweitert“, sondern überhaupt erst geschaffen werden.
Johannes F. schrieb: > Mit JavaScript kann die Funktionalität nicht nur „erweitert“, sondern > überhaupt erst geschaffen werden. Und was ist an der Ki Aussage falsch in BEZUG auf html? Ich sehe da keinen Fehler. Wenn du nach Javascript fragst, wird er dir sicher auch deine gewünschte Antwort geben
Hallo Johannes. Sinnerfassendes lesen ist nicht so Dein Ding? Macht nichts, ich bin sicher die KI kann Dir künftig dabei helfen. :)
Sehr viel erschreckender finde ich, dass es sich hierbei um ein herausragendes Beispiel eignet um zu demonstrieren wie weit die Ki inzwischen ist. Johannes hat sie bei dieser einfachen Fragestellung bereits mal eben locker in die Tasche gesteckt. In einigen Punkten ist die Ki also sogar schon einigen Bürgern gleichwertig oder sogar, wie hier, überlegen. Und das finde ich schon fast etwas unheimlich
Hallo Max. Wenn ich KI zu Ende denke, kriege ich echte Angst. Aber nun ist sie da und los werden wir sie nicht mehr. Und wenn sie schon da ist, will ich sie auch nutzen. Arbeite mich gerade ein sie als Assistent beim programmieren zu nutzen. Sie hat mir schon viel geholfen. Stellt man ihr klare Fragen, gibt sie klare Antworten. Wer dumme und schwammige Fragen stellt, darf sich nicht wundern dumme und schwammige Antworten zu kriegen. Tom
Johannes F. schrieb: > Beispielhaft für die typisch schwammig-aufgeblähten bis sachlich nahezu > falschen Ergüsse dieser „KI“ … > Mit JavaScript kann die Funktionalität nicht nur „erweitert“, sondern > überhaupt erst geschaffen werden. Nein. Viele Webanwendungen kommen ohne Java- und ECMAScript aus.
Max M. schrieb: > Und was ist an der Ki Aussage falsch in BEZUG auf html? Dass etwas falsch ist, habe ich nicht geschrieben. Der Satz Tom A. schrieb: > Mit Hilfe von JavaScript kann die > Funktionalität der Benutzeroberfläche erweitert werden. suggeriert aus dem Kontext des vorherigen Satzes, dass HTML/CSS an sich bereits eine Funktionalität bieten würden, was nicht der Fall ist, da beides keine Programmiersprachen sind (nicht nur „im eigentlichen Sinne“ − ein weiteres Beispiel einer unnötigen Blähfloskel an dieser Stelle). Tom A. schrieb: > Sinnerfassendes lesen ist nicht so Dein Ding? Macht nichts, ich bin > sicher die KI kann Dir künftig dabei helfen. :) Oh, da fühlt sich wohl jemand angegriffen. Dabei habe ich doch nicht dich kritisiert, sondern lediglich die KI, deren Output du hier hereinkopiert hast. Kein Grund also, persönlich zu werden. Max M. schrieb: > Sehr viel erschreckender finde ich, dass es sich hierbei um ein > herausragendes Beispiel eignet um zu demonstrieren wie weit die Ki > inzwischen ist. Naja, wenn das für dich bereits ein „herausragendes Beispiel“ ist … Weitaus erstaunlicher finde ich da die Leistungen, zu denen Übersetzer wie deepl.com inzwischen fähig sind (auch wenn bei manchen Feinheiten immer noch Korrekturen erforderlich sind). Some O. schrieb: > Johannes F. schrieb: >> Mit JavaScript kann die Funktionalität nicht nur „erweitert“, sondern >> überhaupt erst geschaffen werden. > > Nein. Viele Webanwendungen kommen ohne Java- und ECMAScript aus. Dann befindet sich die Funktionalität aber beim Server. Der fragliche Absatz der KI hat den Anschein erweckt, dass man bereits mit HTML/CSS allein irgendwelche Funktionalität implementieren könnte.
Max M. schrieb: > Was für ein Kindergarten was ist dein Problem?! Das du Dinge zitierst, die nicht von dir sind, und dann noch falsche Behauptungen aufstellst (und auch die Quelle nicht nennst). Ja, die qwt-Elemente kann man durchaus ganz gut da drin erkennen. Wenn schon, wäre es ja wohl eher ein Beispiel dafür gewesen, was man mit Qt/qwt machen kann (wurde schließlich eingangs empfohlen) als eins für Lazarus – aber eine "einfache" GUI ist das eh nicht. Ziel war es, die Bedienelemente eines Tekronix 492 halbwegs in ähnlicher Anordnung nachzuvollziehen, das ist nun nicht unbedingt eine Aufgabe, der man sich jeden Tag stellen muss.
Hallo Johannes. Entschuldige, da habe ich wohl etwas überreagiert. Bin oft genervt hier, weil die Frösche so laut quaken, dass man sein eigenes Wort nicht mehr versteht. Nicht für ungut. Tom
Jörg W. schrieb: > Das du Dinge zitierst, die nicht von dir sind, und dann noch falsche > Behauptungen aufstellst (und auch die Quelle nicht nennst). Sorry, jetzt wirds albern. Nochmal, es ändert so gar nichts an der Aussage, das Ergebnis bleibt dasselbe Das Rumgerheule wegen der nicht genannten Quelle.. Hier werden immer Fotos als Beispiele genannt und niemand setzt dafür quellen, weil es auch völlig wumpe ist. Du hast nun mal zufällig etwas von dir gesehen, dann freu dich doch das es als Beispiel genannt wurde. So oft sehe ich meine Sachen im Netz, und da heule ich auch nicht herum, höchsten erwähne ich mal im Forum das es von mir ist;-) Und es wird jetzt auch zu sehr offtopic, gehört hier alles nicht hin inkl deiner Kommentare. Dafür kannst du ja einen extra Topic aufmachen..
Max M. schrieb: > es ändert so gar nichts an der Aussage, das Ergebnis bleibt dasselbe Genau das sehe ich eben nicht so. Es ist ein Beispiel für Qt/qwt. Bring doch eins für Lazarus, wenn du das hier empfiehlst – gern auch mit Quellcode, damit der TE ein Gefühl bekommt, was ihn erwarten würde.
:
Bearbeitet durch Moderator
Leider ist es hier nicht möglich Beiträge im Nachhinein zu ändern, sonst würde ich es tun. Ich habe danach ein anderes Beispiel gepostet, damit ist dann jetzt auch mal gut Es soll symbolisch für eine GUI stehen! Und genau das selbe ginge auch mit PAscal oder jeder anderen (Symbolfoto). Am Ende sieht alles recht ähnlich aus. Hatte einfach das erstbeste Bild aus Google genommen mit Stichwort Lazarus und was in dieses Forum passen würde(technisch), wie gesagt, ein paar Beiträge später habe ich was anders gepostet. Ist doch jetzt auch kein Drama. Anbei weitere echte PAscal Beispiele https://wiki.freepascal.org/Projects_using_Lazarus_-_Medical_and_Scientific_software
Max M. schrieb: > Wenn ihr etwaqs nicht kennt, befolgt > den Tipp den ihr selber immer gebt, googelt es und lest euch ein was > eine Haybriddatei ist und wie das unter Linux funktioniert! Du kennst Lazarus nicht. Mit Lazarus geht so etwas definitiv nicht.
:
Bearbeitet durch User
Max M. schrieb: > Harald K. schrieb: >> Max M. schrieb: > Wenn ihr etwaqs nicht kennt, befolgt > den Tipp den ihr selber immer gebt, googelt es und lest euch ein was > eine Haybriddatei ist und wie das unter Linux funktioniert! Du hättest ja auch einen Link posten können, oder? Mach das doch einfach mal. Bis dahin gehe ich davon aus, dass Du es bist, der Unsinn redet. Edit: Typo korrigiert.
:
Bearbeitet durch User
Sechzehn Codezeilen in Python wenn man wxPython benutzt. Die GUI-Resourcedatei (XML) erstellt man sich im GUI-Designer ›wxGlade‹
1 | #!/usr/bin/env python3
|
2 | # -*- coding: UTF-8 -*-
|
3 | |
4 | import wx, wx.xrc |
5 | |
6 | class SimpleApp(wx.App): |
7 | |
8 | def OnInit(self): |
9 | self.res = wx.xrc.XmlResource('gui.xrc') |
10 | self.init_frame() |
11 | return True |
12 | |
13 | def init_frame(self): |
14 | self.frame = self.res.LoadFrame(None, 'frame_1') |
15 | self.panel = wx.xrc.XRCCTRL(self.frame, 'panel_1') |
16 | self.label1 = wx.xrc.XRCCTRL(self.panel, 'label_1') |
17 | self.frame.Bind(wx.EVT_BUTTON, self.OnSubmit, id=wx.xrc.XRCID('button_1')) |
18 | self.frame.Show() |
19 | |
20 | def OnSubmit(self, evt): |
21 | wx.MessageBox(f'LabelText is {self.label1.GetLabelText()}!', 'Feedback') |
22 | |
23 | app = SimpleApp(False) |
24 | app.MainLoop() |
In Lazarus/Delphi braucht man nur eine selbst geschriebene Zeile. Den Rest macht die IDE. unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Application.MessageBox(PChar('LabelText ist :' + Label1.Caption + ' feedback'), '', MB_OK + MB_ICONQUESTION + MB_DEFBUTTON2); // Eigene Zeile end; end.
Walter S. schrieb: > In Lazarus/Delphi braucht man nur eine selbst geschriebene Zeile. > Den Rest macht die IDE. In Python braucht man 0 (in Worten Null) selbst geschriebene Zeilen wenn man sich nicht schämt in der GUI den Knopf: »Generiere Python Code« zu drücken.
Und wie weiß Python dann, was ich in der Messagebox ausgeben will ?
Tom A. schrieb: > C# ist eine Programmiersprache, die speziell für die Entwicklung von > Windows-Anwendungen entwickelt wurde Nett formuliert. Ich habe eher den Eindruck, dass Microsoft etwas "wie Java" aber doch anders machen wollte. Einfach, weil bei Microsoft alles anders ist als sonst wo. Vor langer Zeit gab es sogar mal eine Java Implementierung von Microsoft, aber die wollte kaum jemand nutzen. Keine Ahnung warum. Zu der Zeit wurde mir das Java von Sun vor nie Nase gesetzt ohne dass ich eine Wahl hatte. Später das von IBM. Wenn man eine reine Desktop Anwendung braucht, würde ich mich von dem ganzen Web Gedöns lieber fern halten, denn es macht die Sache nämlich deutlich komplexer. Neben der Programmiersprache der Logik muss sich dann nämlich auch noch mit dem HTTP Protokoll, HTML, CSS, Javascript und zahlreichen gemeinen Tücken auseinander setzen (z.B. CORS). Wenn die Anwendung jedoch eh per Web Browser oder von vielen Usern gleichzeitig verwendet werden soll, oder HTML darstellen soll, dann macht das für mich Sinn. Hier ein Beispiel in Go, wo das selbst geschriebene Programm den Chrome Browser für die Darstellung nutzt: http://stefanfrings.de/go_webserver/index.html
˙ɟ uɐɟǝʇs schrieb: > Vor langer Zeit gab es sogar mal eine Java Implementierung von > Microsoft, aber die wollte kaum jemand nutzen. > Keine Ahnung warum. Es war kein Java, weil sie ihre proprietäre Scheisse dort reingedrückt, Java draufgestempelt und es als das verkauft haben. Das hat Sun nicht gefallen, deshalb hat Sun MS verklagt und recht bekommen. Daraufhin hat MS .NET entwickelt und Java ignoriert. Vor wenigen Jahren dann ihr eigenes javakonformes JDK rausbrachten, damit sie auch Java in ihrem Cloudangebot mit dabeihaben und von anderen Implementierungen unabhängig sind.
Walter S. schrieb: > Und wie weiß Python dann, was ich in der Messagebox ausgeben will > ? Weil's in einer GUI (selbst von ChatGPT Abhängigen) zusammen geklickt und entweder direkt in fertigen Python-Code oder eine importierbare XML Datei geschrieben werden kann. Der oben gezeigte XML-Ansatz trennt die Komponenten auch noch im weitesten Sinne wie ein MVC (Model-View-Controller).
Sophie T. schrieb: > Komisch - das einfachste wurde gar nicht genannt. Solche Fragestellungen provozieren regelmäßig dass jeder sich berufen fühlt seine Lieblingssprache/Toolkit zu nennen. Ist ja auch klar, für den jeweiligen Antworter ist das tatäschlich das Einfachste, er ist damit ja vertraut und hat alles sauber aufgesetzt und lauffähig. Alternativ werden dann gerne noch irgendwelche Exoten aufgezählt, weil, man ist ja was Besonderes. Ungeachtet persönlicher Präferenzen ist das Einfachste immer: Nimm die Sprache die du bereits gut kannst! Wenn du dich erst wo einarbeiten musst bist du am Ziel "Einfaches GUI-Design" eh schon vorbeigeschossen. Stehst du noch ganz am Anfang und kannst auf nichts zurückgreifen würde ich folgende Reihenfolge empfehlen (falls du wirklich nur schnell was hinklatschen willst und kein Interesse an langfristigen/größeren Projekten hast). 1) wähle eine möglichst ausdrucksstarke Sprache mit möglichst vielen nativen Bibliotheken (damit du dich nicht mit dem Klein-Klein beschäftigen musst). Hier sind Skriptsprachen stark, vor allem Python 2) nimm etwas mit großer Community damit du Beispiele findest und Hilfe auf Fragen kriegst (Python, C/C++ punkten hier) 3) nimm etwas was möglichst schnell eingerichtet und aufgesetzt ist. Umständliche Installer (womöglich nicht für alle Plattformen verfügbar) und komplexe Buildsysteme sind ein Hemmnis für schnelle Bastelerfolge. Hier sind auch wieder Skriptsprachen stark, oder gemanagte Sprachen wo du ohne Buildsystem oder Makefiles auskommst (oder notfalls dir von der IDE ein makefile erzeugen lassen kannst).
:
Bearbeitet durch User
Johannes F. schrieb: > Some O. schrieb: >> Johannes F. schrieb: >>> Mit JavaScript kann die Funktionalität nicht nur „erweitert“, sondern >>> überhaupt erst geschaffen werden. >> >> Nein. Viele Webanwendungen kommen ohne Java- und ECMAScript aus. > > Dann befindet sich die Funktionalität aber beim Server. Der fragliche > Absatz der KI hat den Anschein erweckt, dass man bereits mit HTML/CSS > allein irgendwelche Funktionalität implementieren könnte. Dann lies nochmal genauer: die KI "spricht" an der Stelle ausschließlich von Benutzeroberflächen, und eben nicht von dem, was im Backend passieren muß oder wie die Eingaben verarbeitet werden. Alles, was die KI zum Thema Benutzeroberflächen sagt, ist absolut richtig.
Stefan F. schrieb: > Nett formuliert. Ich habe eher den Eindruck, dass Microsoft etwas "wie > Java" aber doch anders machen wollte. Einfach, weil bei Microsoft alles > anders ist als sonst wo. > > Vor langer Zeit gab es sogar mal eine Java Implementierung von > Microsoft, aber die wollte kaum jemand nutzen. Keine Ahnung warum. Das kann ich Dir sagen: das wichtigste Feature von Microsoft Java war die Inkompatibilität zu Suns Referenz. Microsoft wollte Java übernehmen, und dazu dessen wichtigstes Versprechen "write once, run anywhere" zerstören. Genau das hat Sun sich nicht bieten lassen, Microsoft verklagt, und Recht bekommen. Daraufhin hat Microsoft Java aus seinen Systemen entfernt, und seinerseits Konkurrenzprodukte wie C# und Mono entwickelt, um Java mit seiner Marktmacht zu verdrängen. Das hat zum Glück nicht funktioniert, beweist aber, daß Microsoft ein destruktiver Parasit ist. (Und wenn man mich fragt, verfolgt das "Windows Subystem for Linux" (WSL bzw. WSL2) ähnliche Ziele wie Microsofts Strategien gegen Java -- das haben bisher aber leider nur wenige verstanden.)
Im Prinzip ist es doch egal.. jede Sprache hat ihre Vorteile, ich habe zum Beispiel vor 20 Jahren mit dem JDK1.1 angefangen.. wenn ich heute eine Gui oder ein Tool brauche tippel ich eben mal los. Anderen ist allein das installieren von Java schon ein Graus, obwohl sie egal in welcher Sprache noch ewig rumbasteln. Ja mein Gott, dann muss ein User halt Java installieren, das macht es aber nicht unprofessioneller. Um das .NET/Mono kommt man ja so auch schon im nicht mehr drumherum, es gibt immer wieder Programme bei denen das Pflicht ist. TKinter fand ich in Python für eben mal kurz dies und das als Fenster auch nicht schlecht.
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.