GUI mit Qt5

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

GUI mit Qt5

Beitrag von Ich934 »

Guten Morgen,

ich häng das jetzt einmal vom Ursprungsthread ab da das sonst Off-Topic wird...

Die Argumente für Qt5 sind an sich ganz gut. Ich habe jetzt mal Tante Google und Onkel Wiki befragt. Dabei bin ich auf folgendes gestoßen. Wenn ich das jetzt alles richtig verstehe heißt das im Klartext:

Für die Entwicklung muss ich lediglich den LCLWidgetType setzen und die Abhängigkeiten rein bringen. Richtig?

Für das Deployment/die Verteilung schaut es dann schon etwas anders aus:

Windows
  • aktuell sind hier nur 32-Bit Applikationen möglich weil es Qt5 einfach nicht als 64-Bit gibt
  • es müsste ausreichen die im o. g. Wiki-Eintrag genannten DLLs mitzuliefern ohne ein ganzes Qt5 Framework am Zielrechner installieren zu müssen

Linux
  • hier tu ich mir leichter durch das Erzeugen einer Abhängigkeit
  • Problem könnte jedoch eine neuere Version von Qt5 sein die dann ein Problem macht. Statisches Linken und mitliefern?

Oder habe ich hier etwas übersehen?
Tipp für PostgreSQL: www.pg-forum.de

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: GUI mit Qt5

Beitrag von Ich934 »

Also ich antworte mir jetzt einfach mal selbst. Es ist an sich wirklich so einfach!

Wie im Wiki beschrieben den LCLWidgetType auf qt5 stellen. Unter Linux dann noch die qt5pas nachinstallieren und es lief sofort.

Die Windowsgeschichte war etwas problematischer. Hier habe ich den Qt5-Installer heruntergeladen und die 32-Bit Version mit MingW installiert. Aus dieser habe ich dann alle benötigen DLLs kopiert. Zusätzlich noch die Qt5Pas1.dll von der Lazarus Wiki Seite und auch das lief - allerdings nur in 32-Bit da die Qt5Pas1.dll nur in 32-Bit vorliegt.

Ich habe jetzt unter Windows und Linux nahezu identische aussehende Formulare. Also das Ziel erreicht was ich wollte. Was mir noch fehlt ist die Möglichkeit unter Windows 64-Bit zu kompilieren. Aber auch die Readme zeigt hier nur den 32-Bit Weg. Geht es grundsätzlich nicht oder hat hier jemand eine Lösung?
Tipp für PostgreSQL: www.pg-forum.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: GUI mit Qt5

Beitrag von Timm Thaler »

Unter Windows ist nervig, dass Du immer die Qt DLLs mitliefern musst. Ich weiss auch nicht, ob die installiert werden müssen oder ob es reicht wenn die im gleichen Verzeichnis liegen.

Ich hab mal ein Programm mit Qt erstellt, welches vom Stick laufen sollte. Am Kundenrechner gestartet: Bäm, keine Qt-Lib, läuft nicht. Auf dem Kundenrechner kann ich nicht einfach was installieren.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: GUI mit Qt5

Beitrag von m.fuchs »

Ich934 hat geschrieben:Die Windowsgeschichte war etwas problematischer. Hier habe ich den Qt5-Installer heruntergeladen und die 32-Bit Version mit MingW installiert. Aus dieser habe ich dann alle benötigen DLLs kopiert. Zusätzlich noch die Qt5Pas1.dll von der Lazarus Wiki Seite und auch das lief - allerdings nur in 32-Bit da die Qt5Pas1.dll nur in 32-Bit vorliegt.

Warum sollte man unter Windows Qt benutzen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: GUI mit Qt5

Beitrag von Ich934 »

Timm Thaler hat geschrieben:Unter Windows ist nervig, dass Du immer die Qt DLLs mitliefern musst. Ich weiss auch nicht, ob die installiert werden müssen oder ob es reicht wenn die im gleichen Verzeichnis liegen.


Nein, müsste ausreichen wenn die im Verzeichnis der Anwendung liegen. Ich kann es nur aktuell nicht testen, da ich unter Windows 10 x64 keine 32-Bit Anwendungen mit FPC 3.0.4 erzeugen kann und hier aufgrund von Komponentanbhängigkeiten nicht auf eine neuere Version umsteigen kann.

m.fuchs hat geschrieben:Warum sollte man unter Windows Qt benutzen?


Plattformunabhängigkeit bei gleichen Aussehen. Siehe Originalthread welcher ganz oben verlinkt ist. Damit es dort nicht Off-Topic wird hab ich das ausgegliedert...
Tipp für PostgreSQL: www.pg-forum.de

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: GUI mit Qt5

Beitrag von kupferstecher »

Ich934 hat geschrieben:
m.fuchs hat geschrieben:Warum sollte man unter Windows Qt benutzen?

Plattformunabhängigkeit bei gleichen Aussehen.

Werden bei QT unter Linux nicht die Linux-Themes übernommen? Dann hätte man wieder kein gleiches Aussehen.

Für identisches Aussehen gibt es auch noch das Widgetset CustomDrawn.
Das gibt dann halt so einen Java-Look, d.h. fühlt sich in jedem System fremd an.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: GUI mit Qt5

Beitrag von m.fuchs »

Ich934 hat geschrieben:
m.fuchs hat geschrieben:Warum sollte man unter Windows Qt benutzen?

Plattformunabhängigkeit bei gleichen Aussehen. Siehe Originalthread welcher ganz oben verlinkt ist. Damit es dort nicht Off-Topic wird hab ich das ausgegliedert...

Da war aber die Empfehlung nur unter Linux grundsätzlich QT5 zu benutzen und unter Windows WinForms.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: GUI mit Qt5

Beitrag von wp_xyz »

Ich934 hat geschrieben:
Timm Thaler hat geschrieben:Plattformunabhängigkeit bei gleichen Aussehen.

Das sind die Anwendungen, bei denen man sich nie wohlfühlt.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: GUI mit Qt5

Beitrag von Warf »

kupferstecher hat geschrieben:Für identisches Aussehen gibt es auch noch das Widgetset CustomDrawn.
Das gibt dann halt so einen Java-Look, d.h. fühlt sich in jedem System fremd an.

wp_xyz hat geschrieben:Das sind die Anwendungen, bei denen man sich nie wohlfühlt.

Ne, geht um selbe darstellung nicht identisches aussehen. QT benutzt intern Windows Forms auf Windows, und emuliert den OSX stil (oder verwendet intern sogar cocoa) unter OSX, sodass die anwendungen immer so aussehen wie auf dem zielsystem nativ.

Was das halt garantieren kann das alle eigenschaften gleich sind. Grad bei Cross plattform sachen hat man ab und an das problem das z.T. optionen der LCL nur von bestimmten Widgetsets unterstützt werden (z.B. MDI ist da ganz beliebt)

Aber, ich hatte in dem thread tatsächlich das gemeint
m.fuchs hat geschrieben:Da war aber die Empfehlung nur unter Linux grundsätzlich QT5 zu benutzen und unter Windows WinForms.

Somit musst du zwar zwei anwendungen testen, aber für die LCL ist Windows Forms immer noch der Goldstandard (wegen delphi kompatibilität) und daher hast du bei Windows Forms eigentlich die beste und bugfreiste Anwendung

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: GUI mit Qt5

Beitrag von Ich934 »

Wie schaut es eigentlich grundsätzlich mit der Kompatibilität unter Linux aus? Im Wiki steht ja einiges wegen Ubuntu. Hat das in der Praxis groß Bedeutung oder liefert ihr einfach das alles mit?

Naja aktuell "bastel" ich einfach noch. Gibt da viel neues und viel zu lernen...
Tipp für PostgreSQL: www.pg-forum.de

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: GUI mit Qt5

Beitrag von Warf »

Ich934 hat geschrieben:Wie schaut es eigentlich grundsätzlich mit der Kompatibilität unter Linux aus? Im Wiki steht ja einiges wegen Ubuntu. Hat das in der Praxis groß Bedeutung oder liefert ihr einfach das alles mit?


Kann mich nicht beschweren, benutze auf meinem Majaro die Version aus den Offiziellen Repositories, ist immer die aktuelle Lazarus und FPC version, brauch also nix nachzuinstallieren/selbst compilen oder so), ist auch direkt mit QT5 gebaut. Die FCL ist super kompatibel, die Unix und BaseUnix Units geben zugriff auf die POSIX API's, und die LCL läuft auch wunderbar (auch wenn wie gesagt manche features abbhängig vom Widgetset sind, und manche widgetsets auch manchmal bugs haben, das sind aber weniger als 1% der LCL komponenten, das allermeiste funktioniert anstandslos). Mit manchen Desktop Umgebungen/Window Managern kommt Lazarus nicht so gut zurecht, so hab ich rausgefunden das bei Cinnamon und der Verwendung von Anchordocking, während dem Dockvorgang Lazarus ab und an Access violations wirft. Da ich mir aber für gewöhnlich einmal die IDE konfiguriere ist das aber kein Problem. Unter OpenSuse hatte ich mit Cinnamon öfter heftige Probleme (Da hat Lazarus zum Teil das gesammte DE eingefroren), das schien aber ein OpenSuse-Cinnamon-Lazarus kombinationsproblem gewesen zu sein, unter Manjaro hab ich deutlich weniger probleme. Unter KDE und Gnome hatte ich bislang noch keine Probleme.

Unter Debian basierten Systemen (Debian, Ubuntu, Mint) hat man öfter mal das Problem das es in den Offiziellen (stable) repositories meistens uralt versionen von Lazarus und FPC drin sind, das liegt aber an Debian (ich mein die LLVM version drin ist auch 6, vor ein paar monaten kam 9 raus. Die Version 6 ist 1,5 Jahre alt), weshalb mMn. außerhalb von Servern bei denen Stabilität das wichtigste ist, das erste was man auf Debian, Ubunutu oder Mint machen sollte ist die unstable Repositories aktivieren. Dann bekommt man auch die aktuellste Lazarus version darüber.

Man muss wenn man Software für Linux kompiliert halt auch sicher stellen das auf dem Zielrechner alle Dependencies installiert sind, bei Windows ist das recht simpel da unter Windows sehr viel vom System gestellt wird, aber unter Linux muss man fast alles nachinstallieren (z.B. das richtige Framework für das Widgetset wie QT-5), oder man an sonsten einfach die DLL's mitliefert (das ist aber unter Linux keine sonderlich beliebte Praxis, da es den Paketmanager genau dafür gibt um das zu vermeiden). Da die Packages auf jedem System anders heißen können, kann es manchmal echt eine Qual sein seine Programme bei anderen zum laufen zu bekommen weil man sich denkt: "Auf meinem rechner läufts ja problemlos". Beispiel (das zwar nix mit Lazarus zu tun hat, aber ich demletzt hatte) OpenJDK auf Manjaro: jre11-openjdk, Debian: openjdk-11-jre Opensuse: java-11-openjdk

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: GUI mit Qt5

Beitrag von Ich934 »

Eben, das ist das, wo ich die meisten Probleme sehe. Als ArchLinux-Nutzer hab ich ja sehr aktuelle Software. Debian Benutzer leben da ja lieber eher in der Steinzeit. Naja ich las das mal auf mich zukommen...

Zumindest ist jetzt meine Oberfläche sauber strukturiert und schaut unter Linux (Qt5) und Windows (nativ LCL) gleich aus. Ziel erreicht. :mrgreen:
Tipp für PostgreSQL: www.pg-forum.de

Antworten