[solved] Konstanten header/datei?

Alles rund um die Programmierung mit Qt
Antworten
Abayo
Beiträge: 25
Registriert: 18. Mai 2013 12:25

[solved] Konstanten header/datei?

Beitrag von Abayo »

HI @ all!

Ich habe kein passendes Thema dazu gefunden, weswegen ich einen neuen Thread aufmache.
Wie im Betreff erwähnt möchte ich für meine GUI eine Art KonstantenDatei machen um dort Positionen, Scaliereungen, etc.. zu den verwendeten Elementen zu speichern. Praktisch sowas wie eine CSS-Datei bei HTML.
Grundgedanke ist der, dass ich dann nur noch diese "Template" - datei umändern muss um mein gesamtes Design umzuändern/anzupassen.

Nur weiß ich im Moment nicht wie an dieses Vorhaben herangehen sollte..
Muss ich dazu ein Library erstellen? Kann ich dass mit einem Header machen? Wie muss ich dann die Konstanten initialisieren?
Wie müsste das "Grundgerüst" für solch iene Datei aussehen?

Ich habe mir schon ein paar artikel zum thema Library durchgelesen, das hat sich aber alles einigermaßen aufwendig angehört. Wenn es möglich ist, dann sollte die Betreffende "Template" Datei bei meinem Sourcecode liegen und von dort auch direkt aufgerufen werden können.

HAt das von euch schoneinmal wer gemacht und/oder Ahnung davon?
Für eure Hilfe wäre ich sehr verbunden!
Zuletzt geändert von Abayo am 1. Oktober 2013 15:11, insgesamt 1-mal geändert.
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: Konstanten header/datei?

Beitrag von sigvdr »

Praktisch sowas wie eine CSS-Datei bei HTML.
Dann lies die mal alles zum Thema Stylesheet bei Qt durch. Das ist doch nahezu CSS!

Gruß Sig
Abayo
Beiträge: 25
Registriert: 18. Mai 2013 12:25

Re: Konstanten header/datei?

Beitrag von Abayo »

Die Stylesheets sind auf jeden Fall interessant, aber soweit ich gesehen habe lassen sich positionen für einzelne Widgets nicht einstellen.
Kann sein dass Css files nicht das sind was ich brauche, deswegen ergänze ich mal meine Angaben zur GUI.
Ich habe eine QGraphicsView in deren QGraphicsScene ich mehrere QGraphicsObjects und items anzeige.
Nun habe ich 2 Designs die sich eigentlich nur darin unterscheiden wo die untersch. Objekte positioniert sind. Hintergrundfarben und ähnliches setzte ich bisher immer manuell, da ich die paint funktion jeweils umschreibe.

Für die einzelnen Positionen die ich bisher immer mit festen koordinaten gesetzt habe wollte ich nun eine extra datei in der die konstanten drinstehen und auf die ich im Programm dann verweise.
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: Konstanten header/datei?

Beitrag von sigvdr »

Positionen lassen sich bestimmen mit Stylesheet
position:absolute;
left: 10px;
top: 2px;
height: 46px;
width: 46px;
Das mit den Stylesheets war aber auch nur als Anregung gedacht, damit lässt sich oft mehr erreichen als vorher gedacht.
wollte ich nun eine extra datei in der die konstanten drinstehen
Dann mach doch genau das!
Als Header Datei:

Code: Alles auswählen

static int GraphicObject1_x = 48;
static int GraphicObject1_y = 148;
u.s.w.
Oder gleich z.B. als externe Textdatei die zur Laufzeit eingelesen wird. Wenn das alles so flexibel sein soll, wäre das doch die bessere Lösung!

Gruß Sig
Mr.Crank
Beiträge: 38
Registriert: 16. April 2013 15:21

Re: Konstanten header/datei?

Beitrag von Mr.Crank »

Also wenn ich es richtig verstanden habe möchtest du einfach nur einen Ort
für sämtliche konstanten Werte. Dies kannst du einfach in einer Header realisieren,
z.B. Konstanten.h .

Darin schreibst du dann einfach direkt deine Werte wie folgt, (mache ich z.B. immer für Schleifengrenzen usw.):

#define PI 3,1415 // Präprozessor Notation üblich in C , C++ Kompiler fressen das aber auch
besser

const float PI = 3,1415;
const int MAX_L_TRAVERSE = 25;
const int MAX_R_TRAVERSE = 25;
// usw. diese Header bindest du dann normal wie mit #include "Konstanten.h" da ein, wo du sie brauchst

für Stylesheet bietet sich das also auch an indem du width und length als const definierst

Gruß Mr.Crank
Abayo
Beiträge: 25
Registriert: 18. Mai 2013 12:25

Re: Konstanten header/datei?

Beitrag von Abayo »

Super, das waren genau die Antworten die ich gebraucht habe :)

Ich war mir nicht sicher ob ich das nur ale header machen kann, da mein erster Versuch eine Fehlermeldung ausgegeben hat.
Das mit der Textdatei hört sich auch gut an. Muss ich aber erstmal schauen wie ich Dateien einlesen und benutzen kann (hab ich noch nicht gemacht).

Thx soweit!
Antworten