StringGrid Unterschiedliche größe in Wine und LInux qt5
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
StringGrid Unterschiedliche größe in Wine und LInux qt5
Liegt das an Wine oder wird das unter Windows genauso aussehen?
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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!
Kommt auch auf die gewählte Darstellung in X an!
Gruß, Michael
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
ohje. d.h. ich muss irgendwie das ding dazu bringen das es skaliert
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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.
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;
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
hm wo wäre der Vorteil zu einem Drawgrid ?
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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...
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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 ?
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;
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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).
-
- Beiträge: 81
- Registriert: Sa 1. Mai 2021, 15:39
Re: StringGrid Unterschiedliche größe in Wine und LInux qt5
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;