Seite 1 von 1

[solved] Konstanten header/datei?

Verfasst: 30. September 2013 14:13
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!

Re: Konstanten header/datei?

Verfasst: 30. September 2013 14:46
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

Re: Konstanten header/datei?

Verfasst: 30. September 2013 17:34
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.

Re: Konstanten header/datei?

Verfasst: 30. September 2013 19:42
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

Re: Konstanten header/datei?

Verfasst: 30. September 2013 20:19
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

Re: Konstanten header/datei?

Verfasst: 1. Oktober 2013 15:10
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!