GUI mit Qt5

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

GUI mit Qt5

Beitragvon Ich934 » 25. Nov 2019, 07:16 GUI mit Qt5

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: 51
Registriert: 5. Mai 2019, 15:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.0.4) | 
CPU-Target: x86_64, i386
Nach oben

Beitragvon Ich934 » 25. Nov 2019, 21:44 Re: GUI mit Qt5

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
Ich934
Lazarusforum e. V.
 
Beiträge: 51
Registriert: 5. Mai 2019, 15:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.0.4) | 
CPU-Target: x86_64, i386
Nach oben

Beitragvon Timm Thaler » 25. Nov 2019, 22:03 Re: GUI mit Qt5

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.
Timm Thaler
 
Beiträge: 1010
Registriert: 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
Nach oben

Beitragvon m.fuchs » 25. Nov 2019, 23:07 Re: GUI mit Qt5

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
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2158
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Ich934 » 26. Nov 2019, 06:37 Re: GUI mit Qt5

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
Ich934
Lazarusforum e. V.
 
Beiträge: 51
Registriert: 5. Mai 2019, 15:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.0.4) | 
CPU-Target: x86_64, i386
Nach oben

Beitragvon kupferstecher » 26. Nov 2019, 12:05 Re: GUI mit Qt5

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.
kupferstecher
 
Beiträge: 233
Registriert: 17. Nov 2016, 11:52

Beitragvon m.fuchs » 26. Nov 2019, 12:39 Re: GUI mit Qt5

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
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2158
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon wp_xyz » 26. Nov 2019, 13:02 Re: GUI mit Qt5

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

Das sind die Anwendungen, bei denen man sich nie wohlfühlt.
wp_xyz
 
Beiträge: 3038
Registriert: 8. Apr 2011, 08:01

Beitragvon Warf » 26. Nov 2019, 16:44 Re: GUI mit Qt5

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
Warf
 
Beiträge: 1303
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon Ich934 » 26. Nov 2019, 17:38 Re: GUI mit Qt5

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
Ich934
Lazarusforum e. V.
 
Beiträge: 51
Registriert: 5. Mai 2019, 15:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.0.4) | 
CPU-Target: x86_64, i386
Nach oben

Beitragvon Warf » 26. Nov 2019, 19:15 Re: GUI mit Qt5

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
Warf
 
Beiträge: 1303
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon Ich934 » 26. Nov 2019, 20:04 Re: GUI mit Qt5

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
Ich934
Lazarusforum e. V.
 
Beiträge: 51
Registriert: 5. Mai 2019, 15:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.0.4) | 
CPU-Target: x86_64, i386
Nach oben

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron
porpoises-institution
accuracy-worried