Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Beitragvon Timm Thaler » 4. Jan 2017, 09:33 Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

... bescheiden aussehen.

term-01.png


Das ist das gleiche Programm in Win7 mit Lazarus, Raspbian mit Lazarus und Raspbian mit Qt. Abgesehen davon, dass die Elemente unter Linux immer riesig sind - auch bei Ubuntu - und damit die Positionierung nicht mehr passt, warum übernimmt Lazarus hier nicht die Vorgaben des OS für die Darstellung?

Wie macht ihr das, um unter Linux eine konsistente Darstellung zu bekommen?

Lazarus ist jeweils 1.6, FPC ist 3.0.0.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Michl » 4. Jan 2017, 10:28 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Das alles ist ein sehr umfnagreiches Thema, wenn man es richtig machen will. Schon unter Windows gibt es eine Menge Möglichkeiten. WinXP, Win7 Classic / Aero Theme, Win 10 mit jeweils unterschiedlichen DPI Settings und DPI-Verhaltensregeln (neuerdings sogar Per-Monitor DPI-Aware). Linux/MAC kennen diese Regeln nicht, dort gibt es nur eine bestimmte DPI-Einstellung, die aber auch variieren kann.

Aktuell, kann man sich an dem Wiki http://wiki.lazarus.freepascal.org/High_DPI orientieren und alle Zielplatformen testen, ob es entsprechend funktioniert. Im Lazarus Trunk wird zur Zeit an einer automatischen Lösung für die Darstellungsprobleme gearbeitet, siehe http://wiki.freepascal.org/High_DPI#High_DPI_in_Lazarus_1.7_and_above.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2257
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon Mathias » 4. Jan 2017, 17:08 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Was vielleicht auch noch ein Tip ist, wen man den Platz für die Komponenten grosszügiger berechnet und überladene Dialog vermeidet.
Die COM-Port Parameter könnte man in ein Menü und einen separaten Dialog auslagern.

Besonders schwierig wird es, wen man Dialoge Mehrsprachig gestallten muss, das bringen vielfach nicht mal Profis richtig hin.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3976
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Christian » 4. Jan 2017, 17:48 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Die GUI sieht bescheiden aus, weil sie bescheiden entwickelt ist.
Lazarus bietet mit Anchoring und default Schriftgrößen/arten alle Möglichkeiten die man braucht um die GUIs auf allen Plattformen vernünftig zu machen.
Oberflächen sind unter Windows oft viel zu überladen und sind viel übersichtlicher wenn man sie auf Tabs oder Fenster aufteilt weil der Nutzer eh nicht alle Controls erfassen kann.
Deshalb find ich die Entscheidung unter Linux die Controls/Schriftarten größer zu machen gar nicht so schlecht.
Wenn du die GUI im Linux entwickelst sieht sie im Windows übrigends meisst auch gut aus. Wenn du doch mal zu große Abstände hast kannst du mit Anchors die Controls "aneinander hängen"
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6101
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon Timm Thaler » 5. Jan 2017, 01:28 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Mathias hat geschrieben:Was vielleicht auch noch ein Tip ist, wen man den Platz für die Komponenten grosszügiger berechnet und überladene Dialog vermeidet.


Haha, dann hast Du noch nie mit BrayTerm gearbeitet.

Ne, ich will das genau so, weil ich häufig verschiedene Geräte mit unterschiedlichen Einstellungen testen muss. Hier geht es weniger um Datenaustausch oder Konsole, sondern um Befehlsfolgen. Deswegen auch die Möglichkeiten zur Manipulation der Ausgabe.

Christian hat geschrieben:Lazarus bietet mit Anchoring und default Schriftgrößen/arten alle Möglichkeiten die man braucht um die GUIs auf allen Plattformen vernünftig zu machen.


Das rücke ich noch zurecht. Erklärt aber nicht, warum Lazarus hier eigene Darstellung verwendet (z.B. die eckigen Buttons statt der abgerundeten von Raspbian). Sollte das nicht GTK 2 sein?

Und die vergeigte Darstellung der Statusbar - dazu muss man wohl nix sagen, oder?

Allerdings sind die Anchors schon nett, z.B. das automatische Anpassen des Ausgabefensters an die Fenstergröße läuft sehr flüssig.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 5. Jan 2017, 03:22 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

term-02.png


Noch ein paar Anker zugewiesen und die Statusbar durch TStaticTest ersetzt. Macht unter Raspbian noch den falschen Rahmen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon creed steiger » 5. Jan 2017, 06:47 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Mit dem gnome-color-chooser kannst du das alles auf dem PI einstellen.
creed steiger
 
Beiträge: 939
Registriert: 11. Sep 2006, 21:56

Beitragvon pluto » 5. Jan 2017, 14:40 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Es sieht unterschiedlich aus auf verschiedenen Linux wegen verschiedener Gründe:
1. Welchen Fenster Manager? Die einen Zeichnen so, die anderen wieder so und der dritte ganz anders.
2. Welches Themen hast du geladen? Letztes hatte ich in Inkscape ein Fehler: Ich konnte keine Führungslinien erstellen. Jedes mal wurde das Fenster verschoben wer war schuld? Der GTK2 Style. Style geändert und siehe da: Es läuft...

Oft sind es Kleinigkeiten.

Das ist ja das schöne an HTML, da hier in der Regel alles Automatisch Positioniert wird. Was auch nicht immer toll ist.
Ich habe so was was du gerade machst mit einem WebSocketServer mal gemacht... der Konnte auch mit mehren Device's umgehen...
weiß aber nicht wo ich stehengeblieben bin.

Jetzt kann man sagen: Packt eure Fenster nicht zu voll, dann wird es unübersichtlich das ist aber nicht immer die Lösung.
Die Lösung wäre, die GUI selbst zu zeichnen, dann sieht die immer gleich aus.

Es gibt eine Komponenten Lib, die Zeichnet einige Komponenten selbst, die Wichtigsten. Mir fällt gerade der Name nicht ein.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6534
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.1 | 
CPU-Target: AMD
Nach oben

Beitragvon Timm Thaler » 5. Jan 2017, 15:01 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

Das Autoskale und die Positionierung über Anker ist schon so schlecht nicht. Was mich eher verwirrt ist:

- Warum sehen die Buttons anders (spitze Ecken, weisser Innenrand) aus als bei den nativen Raspbian-Fenstern, oder bei Cutecom, oder wenn ich die gleiche Oberfläche mit Qt und C++ erstelle (Buttons mit runden Ecken)?
- Warum ist eine editierbare ComboBox höher als eine nicht editierbare, wenn ich Autosize einstelle? Ist bei Cutecom z.B. nicht so.
- Warum hat eine ComboBox spitze Ecken, sobald sie editierbar ist sind die Ecken rund?
- Warum werden Elemente mit spitzen und runden Ecken lustig gemischt (Buttons vs. Checkboxes)?

Das erscheint irgendwie inkonsistent.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon pluto » 5. Jan 2017, 15:31 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

- Warum sehen die Buttons anders (spitze Ecken, weisser Innenrand) aus als bei den nativen Raspbian-Fenstern, oder bei Cutecom, oder wenn ich die gleiche Oberfläche mit Qt und C++ erstelle (Buttons mit runden Ecken)?

Wie gesagt: Es gibt unterschiedlichen Themen, unterschiedliche GTK2 Style und Unterschiedliche Fenster Manager.
Das führt dazu, dass alles unterschiedlich aussieht.

- Warum ist eine editierbare ComboBox höher als eine nicht editierbare, wenn ich Autosize einstelle? Ist bei Cutecom z.B. nicht so.

Eine Spannende Frage....

- Warum hat eine ComboBox spitze Ecken, sobald sie editierbar ist sind die Ecken rund?

Vielleicht, damit man sehen kann, dass editierbar ist.

- Warum werden Elemente mit spitzen und runden Ecken lustig gemischt (Buttons vs. Checkboxes)?

Damit nicht alles gleich aussieht.

Ich würde mir auch eher eine Einheitlichere GUI wünschen.

Habe schon einige GUI Konzepte entwickelt, aber das Thema ist nicht so einfach...
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6534
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.1 | 
CPU-Target: AMD
Nach oben

Beitragvon Mathias » 5. Jan 2017, 16:59 Re: Arg! - Oder: Warum müssen GUIs unter Linux immer so ...

- Warum ist eine editierbare ComboBox höher als eine nicht editierbare, wenn ich Autosize einstelle? Ist bei Cutecom z.B. nicht so.

Über die Höhe ComboBox wurde hier auch schon diskutiert.

viewtopic.php?f=18&t=10287&p=90602&hilit=combobox#p90602
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3976
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried