Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Mitteilungen und Ankündigungen
Antworten
Mattias
Lazarusforum e. V.
Beiträge: 193
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Mattias »

Gtk3 ist nun das Standard-LCL-Widgetset in Linux im Lazarus main branch.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7355
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von af0815 »

Mattias hat geschrieben: Do 2. Jul 2026, 18:14 Gtk3 ist nun das Standard-LCL-Widgetset in Linux im Lazarus main branch.
Nach dem Bericht von Corpsmann war der Schritt zu erwarten.
Da kann man nur gratulieren.

Edit:
Der aktuelle main FPC/main Lazarus läuft (Update mit FPCUpdeluxe). Auch die ersten Kompilate zeigen keine Auffälligkeiten.
GTK3 und die GTK3-dev müssen natürlich installiert sein, sonst gibt es Linkerfehler. Nicht vergessen, besonders das Develop-Paket ist nicht Standardmässig installiert (Hier Linux Mint).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 7324
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Mathias »

Das mit dem *.dev war doch schon bei GTK1 und GTK2 so. Und bei QTx natürlich auch.

Wie viel Overhead musste wohl in der LCL verbaut werden um GTK3 zu bändigen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7355
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von af0815 »

Mathias hat geschrieben: Fr 3. Jul 2026, 20:17 Das mit dem *.dev war doch schon bei GTK1 und GTK2 so. Und bei QTx natürlich auch.

Wie viel Overhead musste wohl in der LCL verbaut werden um GTK3 zu bändigen ?
Ich glaube der Layer ist dünner als man glaubt. Ist ja bei QT ja auch gelungen.

Ausserdem kann man sich den Source ja jederzeit ansehen. :mrgreen:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mattias
Lazarusforum e. V.
Beiträge: 193
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Mattias »

Mathias hat geschrieben: Fr 3. Jul 2026, 20:17 Wie viel Overhead musste wohl in der LCL verbaut werden um GTK3 zu bändigen ?
In Zeilen: Etwa 53kloc. Bei gtk2 sind es 60kloc.

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 731
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Niesi »

Mathias hat geschrieben: Fr 3. Jul 2026, 20:17 Das mit dem *.dev war doch schon bei GTK1 und GTK2 so. Und bei QTx natürlich auch.

Wie viel Overhead musste wohl in der LCL verbaut werden um GTK3 zu bändigen ?
Ich kann mich nicht daran erinnern. jemals GTK2 - *.dev installiert zu haben (Linux Mint, hab' Lazarus seinerzeit aber auch mit anderen Distros getestet).

QT5 und QT6 sowie GTK3 ja, da habe ich das gemacht (nur mit Linux Mint, da ich mich dafür entschieden habe).

Wenn Linux User jetzt die Lazarus IDE installieren, müssen dann für die Arbeit mit GTK3 die *.dev von den Usern extra installiert werden?
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Mattias
Lazarusforum e. V.
Beiträge: 193
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Mattias »

Niesi hat geschrieben: Sa 4. Jul 2026, 09:43 Wenn Linux User jetzt die Lazarus IDE installieren, müssen dann für die Arbeit mit GTK3 die *.dev von den Usern extra installiert werden?
Wenn du das Lazarus deb installiert hast, dann wird das libgtk2.0-dev mitinstalliert.

Genauso wird ein Lazarus deb für gtk3 das libgtk-3-dev installieren. So funktioniert Linux.

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 731
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Niesi »

Mattias hat geschrieben: Sa 4. Jul 2026, 09:56
Niesi hat geschrieben: Sa 4. Jul 2026, 09:43 Wenn Linux User jetzt die Lazarus IDE installieren, müssen dann für die Arbeit mit GTK3 die *.dev von den Usern extra installiert werden?
Wenn du das Lazarus deb installiert hast, dann wird das libgtk2.0-dev mitinstalliert.

Genauso wird ein Lazarus deb für gtk3 das libgtk-3-dev installieren. So funktioniert Linux.
Danke für die schnelle Antwort.

Das mit den deb ist gut.

Wir müssten den Usern sonst halt mitteilen, was sie zu tun haben - Irritationen gleich am Anfang sind immer nicht so gut ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
theo
Beiträge: 11358
Registriert: Mo 11. Sep 2006, 19:01

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von theo »

Eigentlich schon lustig, wie Lazarus (via Paketmanager) in Unterpakete gegliedert ist, zumindest auf OpenSUSE:

Bildschirmfoto_20260704_120107.png
Bildschirmfoto_20260704_120107.png (141.87 KiB) 431 mal betrachtet

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7355
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von af0815 »

theo hat geschrieben: Sa 4. Jul 2026, 12:04 Eigentlich schon lustig, wie Lazarus (via Paketmanager) in Unterpakete gegliedert ist, zumindest auf OpenSUSE:
Und genau hier heißt es sich oft. Die Distributions Pakete können dann bei einem rekompilieren Probleme machen, wenn du Pakete installierst oder Updatest. Ist mir am Anfang immer wieder auf die Füsse gefallen.

Wenn man keine Cross Kompilierung macht, geht FPC aus der Distro und Lazarus mit Git aus den Sourcen.

Die Paket sind halt für selbstkompilierende Programme nicht unbedingt das Beste.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Frank Ranis
Beiträge: 217
Registriert: Do 24. Jan 2013, 21:22

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von Frank Ranis »

Hallo ,

habe die letzten Wochen mit verschiedenen Widgetset (GTK2 , GTK3 , QT5 , QT6) herumgespielt .
Ich muß noch dazu sagen , das ich bei Linux mehr oder weniger noch Anfänger bin , ein paar Sachen bez. Konsole kann ich , bin hier aber meist auf die Hilfe von KI angewiesen.

Mein Großprojekt (FLZ_Vortex-Aerodynamikprogramm , "https://www.flz-vortex.de/FLZ_Home/index.html") habe ich nun schon seit über 20 Jahren in der Mache (von Delphi6 -> Lazarus portiert).

Bis jetzt kompiliere ich für Windows und Linux-GTK2 und das läuft recht gut und flüssig.
Habe auch in einer V-Box , Linux-Mint (auf Ubuntu-Basis) und ein Linux-Mint (LMDE) installiert , auf beiden läuft mein Programm gut .

In den letzten Wochen habe ich dann diverses ausprobiert .
Habe mir dazu Lazarus v4.99.0.0 - FPC v3.3.1 per FpcUpDeluex installiert , sowohl auf einem Windows10 Rechner , als auch unter Linux-Mint .

1) Zunächst mal der Test auf dem Linux-Mint Rechner .

a) GTK3
Das Kernprogramm , GUI und sämtliche Aero-Berechnungen laufen gut und schnell (vergleichbar dem GTK2-Programm) , aber mein OpenGL geht leider nicht mehr (old Legacy-Code).

b) QT5 / 6
GUI und auch OpenGl-Grafik funktionieren , die Bedinung der Oberfläche und auch die Mausaktionen (rotieren , zoomen , markieren ) im OpenGl gehen halbwegs flüssig .
Aber meine Berechnungsroutinen (teils mit Therads) sind grotten langsam , wenns hoch kommt ein 1/3 der Geschwindigket des GTK2-Programms .
Keine Ahnung , was da passiert .


2) Dann habe ich mir in der V-Box mal Testweise ein "EndeavourOS_Titan-Neo" auf Arch-Basis installiert .

a) Das installieren von Lazarus per FpcUpDelux-QT5 war dann schon mal die erste Herausforderung .
Mit Hilfe von KI erst mal die fehlenden QT5-Libs nach installiert .
Dann konnte per FpcUpDeluxe das Lazarus v4.99.0.0 - FPC v3.3.1 installieren .

b) dann meine FLZ_Vortex-Quellen ins EndeavourOS gezogen und versucht mit GTK2 zu komplieren , geht nicht , weil igendwelche GTK-Grafik-Libs fehlen .
Mit Hilfe von KI , diese dann draufgebracht und nach gefühlt 10 Stunden konnte ich dann FLZ_Vortex-GTK2 bauen .

c) Für GTK3 , QT5 / QT6 ähnliche Spielchen , diverse Grafik-Libs fehlen .
Bei GTK3 geht wieder die OpenGL Geschichte nicht , ist klar , wegen Legacy-Code .
Bei QT5 / 6 schien erst alles zu gehen , Programm startet , 3D-Grafik ist da .
Aber dann wollte ich ein Fliegermodell per OpenDialog laden und dabei ist mir die Anwendung eingefrohren .
Habe dann etwas geforscht , und es betrifft alle Dialoge (Open- Save- und Colordialog , sowie Directory-Edit usw.) .
Bei einen neuen Mini-Anwendung gehen die Dialoge , auch in Verbindung mit OpenGL .
Nur mein Großprojekt schmiert ab , habe auch diverses versucht , mit Entfernen von sämtlichen OpenGl-Elementen , ohne die benutzen BGRA-Komponenten , mit nur einem von insgesamt 30 Forms .
Finde die Macke einfach nicht und habe erst mal aufgegeben.

3) Mein Fazit für mich bis jetzt .

a) GTK3 anstelle von GTK2 benutzen , und die alten OpenGl-Routinen auf den Stand OpenGL 3.3 umprogrammieren .
Muß mich aber erst mal mit OpenGl 3.3 beschäftigen , dauert wohl etwas länger.
Solange ich das OpenGl 3.3 nicht kann , mit GTK2 weiterfrickeln .

b) QT5/6 meiden , wegen der Dialogprobleme (unter Arch) und auch der Geschwindigkeitsbremse bei den Aeroberechnungen .


4) Habe eine Allround-Lösung für alle Widgetset-Probleme gefunden .

Für das folgende werde ich aber von euch warscheinlich erst mit dem Baseballschläger bearbeitet , dann gevierteilt und zum Schluß verbrannt .

Egal welches LINUX wir haben , dort wird WINE installiert , das hat bei mir unter Linux-Mint und auch unter EndeavourOS problemlos geklappt .
Dort starten wir dann selbstgebaute EXE-Programme per WINE , dann gibt es kein Gefrickel mit GTK2-3 , QT5-6 .

Die EXE bekommen wir per Lazarus
a) unter Windows automatisch
b) unter Linux mit dem Crosscompiler -> WIN
Ist doch geil und ironisch , wir bauen uns unter LINUX eine EXE , damit wir auf jedem Linux-System kompatibel sind .

Vorteil:
Ich kann mein Programm zum laufen bekommen , ohne mich stundenlang mit igendwelchen Terminal- und KI-Sitzungen (bez. fehender Libs) quälen zu müssen.
Gerade für den Otto-Normal-Linux-User ist das wichtig , damit wir von Windows11 wegkommen und mehr Leute nach Linux umsteigen.

Nachteile :
Beim Start etwas langsamer , weil das WINE erst mal in Gange kommen muß.
Die Oberfläche hat den Uralt Windows-XP-Style , Themen und diverses muß man per Wine-Config einstellen , was halt so unter Wine möglich ist.
Die Dialoge sind Windowstypisch , bei Open- und Save-Dialog mit irgendwelchen Laufwerksbuchstaben .

Gruß

Frank
www.flz-vortex.de

Benutzeravatar
theo
Beiträge: 11358
Registriert: Mo 11. Sep 2006, 19:01

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von theo »

Frank Ranis hat geschrieben: Mo 6. Jul 2026, 09:41 Vorteil:
Ich kann mein Programm zum laufen bekommen , ohne mich stundenlang mit igendwelchen Terminal- und KI-Sitzungen (bez. fehender Libs) quälen zu müssen.
Übertreibst du jetzt nicht maßlos?
Bevor du "stundenlang" herumdokterst, warum fragst du nicht im Forum nach?

https://wiki.lazarus.freepascal.org/GTK3_Interface
Frank Ranis hat geschrieben: Mo 6. Jul 2026, 09:41 Gerade für den Otto-Normal-Linux-User ist das wichtig , damit wir von Windows11 wegkommen und mehr Leute nach Linux umsteigen.
Wine ist aber gerade nicht "von Windows wegkommen". :wink:
Wine muss man auch erst installieren und konfigurieren, da scheinen mir ein paar GTK Libs aus dem Paketmanager wesentlich unkomplizierter.

Auf Linux umzusteigen setzt eine gewisse Lern- und Tüftelbereitschaft voraus (Auch umgekehrt, Lin-Win, aber das gibt es wohl selten).
Wer das nicht möchte, soll es bleiben lassen.
"Mutti, es geht nicht!" ist die falsche Einstellung für einen Linux Benutzer. :wink:

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7355
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Gtk3 ist nun das Standard-LCL-Widgetset in Linux

Beitrag von af0815 »

Für das folgende werde ich aber von euch warscheinlich erst mit dem Baseballschläger bearbeitet , dann gevierteilt und zum Schluß verbrannt .

Egal welches LINUX wir haben , dort wird WINE installiert , das hat bei mir unter Linux-Mint und auch unter EndeavourOS problemlos geklappt .
Dort starten wir dann selbstgebaute EXE-Programme per WINE , dann gibt es kein Gefrickel mit GTK2-3 , QT5-6 .
Warum, jede Lösung ist eine Lösung - man kann nur darüber Diskutieren, wie gut die man die empfindet.

Und Wine ist, wie schon erleben durfte, auch nicht so unkompliziert. Aber wenn es funktioniert ist es einmal ein Workaround. Was dir dabei hilft, das Lazarus/FPC nicht allzuviele Ansprüche stellen und das meiste 'neue' in WIndows nicht einmal ignorieren. Langfristig weis man bei WIndows auch nicht immer woran man ist.

Langfristig wirst du unter Linux dich mit den neueren Bibliotheken herumschlagen dürfen. Entweder die QT oder GTK Welt, probier nicht alles auf einmal hin zu bekommen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten