StringGrid Unterschiedliche größe in Wine und LInux qt5

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von nevermore2k »

Bild

Liegt das an Wine oder wird das unter Windows genauso aussehen?

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von six1 »

Meine Erfahrung ist, dass sich ein und der selbe Quellcode anders darstellt zwischen X und WIN.
Kommt auch auf die gewählte Darstellung in X an!
Gruß, Michael

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von nevermore2k »

ohje. d.h. ich muss irgendwie das ding dazu bringen das es skaliert

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von Michl »

Wenn ich mir das Bild so ansehe, würde ich wahrscheinlich zu einem DrawGrid statt einem StringGrid greifen.

Ansonsten sind ClientWidth und ClientHeight hilfreich, um Rows und Cols in der Größe anzupassen. Anders herum, kannst du mit Width und ClientWidth ermittlen, wie groß die Borders sind (Height identisch) und entsprechend die Bounds setzen.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von nevermore2k »

hm wo wäre der Vorteil zu einem Drawgrid ?

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

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von wp_xyz »

Das StringGrid hat natürlich dieselbe Größe in Win und Linux und wo auch immer - Win-Pixel sind Linux-Pixel sind mac-Pixel. Aber die unterschiedlichen Betriebssysteme habe unterschiedliche Font-Größen, und deshalb hat das StringGrid unterschiedliche Zeilenhöhen, weshalb der zur Verfügung stehende Platz unterschiedlich gut ausgefüllt wird. --> Du musst dir die Zeilenhöhe entsprechend selbst ausrechnen (Michl hat hier vor nicht allzulanger Zeit entsprechenden Code für die Spaltenbreiten gezeigt), oder umgekehrt die Grid-Höhe so berechnen, dass sie unter den gezeigten Zeilen keinen Leerraum mehr lässt (was zum einen einfacher ist, und zum anderen erlaubt, dass alle Zeilen gleich hoch bleiben). Diese Grundübung in Mathematik überlass ich dir...

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von nevermore2k »

hm verstehe, daran liegt das dann.
Ich habe mal bei einem DB Grid die Zeilen höhe ändern müssen, und dazu folgendes genutzt. sollte auch für das stringgrid dann tun oder ?

Code: Alles auswählen

type
  THackDBGrid=Class(TDBGrid);

---------------------------------------------
type

  { TForm1 }

  TForm1 = class(TForm)       
usw... 
----------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
begin
      THackDBGrid(DBGrid1).DefaultRowHeight:=28;
end;    

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

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von wp_xyz »

Nicht unbedingt. Denn wenn das Grid in der Höhe kein Vielfaches von 28 ist, bleibt ein weißer Rand übrig. Einfacher geht es, wenn du die Gridhöhe gleich der Anzahl der Zeilen * defaultRowHeight machsts (plus eine kleine Korrektur wegen der Gridlinien - das überlasse ich dir).

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von nevermore2k »

danke :)

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: StringGrid Unterschiedliche größe in Wine und LInux qt5

Beitrag von Michl »

nevermore2k hat geschrieben:
Di 25. Mai 2021, 15:29
hm wo wäre der Vorteil zu einem Drawgrid ?
Ein Stringgrid ist, wie der Name schon sagt, gut für Strings. D.h. wenn man recht einfach eine kleine App zusammenklicken will, wo man ein paar Daten anzeigen bzw. vom User editierbar machen will, kann man es dafür perfekt nehmen. Der Vorteil liegt dabei darin, daß man keine externen Strings vorhalten muss, da dies im StringGrid selbst erfolgen kann (mit Möglichkeit zum Laden/Speichern/Editieren etc.).

Nun sehe ich bei dem Bild keine Strings. Daher würde ich auf den Overhead, den ein TStringGrid mitbringt, verzichten und ein TDrawGrid nehmen (ist aber kein Muss).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten