TreeView für Projekte

Verschiedenes zu Qt
Antworten
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

TreeView für Projekte

Beitrag von Flashpixx »

Hallo,

ich möchte mich nach längerer Zeit nun auf ein Projekt mit Qt 5 stürzen (OpenGL, Datenbank und GUI) und habe direkt eine Frage bezüglich des GUI Designs.
Ich habe datenbankbasiert mehrere Bäume (Codeentwicklungsstrukturen), die ähnlich zu den Branches bei Git sind, d.h. ich habe mehrere Codeeinträge, die sich
beliebig oft abspalten können und somit ein recht tiefer und aber auch breiter Baum ergeben kann.
Ich habe von einem Projekt her 5 Hauptkategorien (Umgebung, Tools, Bibliothek, Tags & Tasks). Für Tags & Task brauche ich maximal 2 Tiefenebenen, aber für
Umgebung, Tools und Bibliothek können beliebig komplexe Bäume entstehen. Jeder Eintrag ist mit einem Plaintext beliebiger Länge versehen und ich benötige ein
OpenGL Fenster für die Darstellung von Ergebnissen in 2D & 3D.
Ich würde gerne alle Texte als eine Art Tabview haben, so dass man mehrere Texte öffnen und editieren kann, aber ich möchte auch möglichst alles in einer
Art Baumstruktur darstellen.
Ich würde mich freuen, wenn jemand ein paar gute Ideen hätte, wie man eine solche Struktur optisch passend in Qt darstellen kann. Ich möchte möglichst
eine minimalistische, aber effektive Oberfläche haben. Im Moment scheitere ich an einer Überlegung, wie ich eine Struktur ähnlich zu den Git Branches
erzeugen kann.
Vielen Dank
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Re: TreeView für Projekte

Beitrag von -=Freaky=- »

guten morgen,

ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber vielleicht hilft folgendes: http://sourceforge.net/projects/qgit/.
in den screenshots dort siehst du, dass in einer spalte nur der graph, also der angesprochene baum, zu sehen ist, und rechts davon in einer einfachen liste die zugehoerigen texte. so in etwa koennte man sowas vllt. recht uebersichtlich hinkriegen?
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

Re: TreeView für Projekte

Beitrag von Flashpixx »

Perfekt, genau so etwas suche ich. Aber wie erzeugt man die graphische Darstellung mit den Qt Elementen.

Ich hätte gerne letztendlich ein Layout wie es Matlab bietet (siehe z.b. http://blogs.mathworks.com/images/deskt ... _small.jpg ).
Die beiden Widget links sollen zu einem Widget werden, in der der Projektbaum zu sehen ist. Es sollen mehrere von den Codesfenster geöffnet werden können, wobei
man dann diese per Tabs anspringen kann (jede Codedatei bekommt ein eigenes Tab). Zusätzlichen sollen dann ebenfalls Tabs für eine OpenGL Darstellung und
für die Baumdarstellung möglich sein.
Diese Darstellung soll dann wiederum in einem Fenster sein, so dass man mehrere Projekte öffnen kann, wobei eben jedes Projekt wie oben beschrieben erscheinen
soll. Meine Qt GUI Kenntnisse sind aktuell noch bei Qt3, darum bräuchte ich eigentlich nur etwas Hilfe, welche Komponenten ich aus Qt5 dafür verwenden kann bzw.
wie ich diese geschickt benutze. Ich wollte die Gui mit dem Qt Creator erstellen und lediglich die Signals bzw. Slots codieren. Die Gui soll unter OSX, Windows und Linux
auch ähnlich aussehen. Einen Syntaxhighlighter für meine Codes habe ich schon gefunden.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Re: TreeView für Projekte

Beitrag von -=Freaky=- »

ich kann dir auf anhieb leider nicht sagen, wie genau das implementiert ist. allerdings koennen dir das vermutlich die sourcen von qgit verraten: z.b. hier.
der pragmatischste ansatz waere vllt., irgendwie zu bestimmen, in welcher spalte des graphen ein eintrag anzusiedeln ist, und welches "event" dazugehoert (branch, merge, commit oder sowas), und diese info zu jeder zeile, inklusive zeilenhoehe, dem treeview zu geben. da koennte man das paintEvent implementieren und fuer jede zeile das entsprechende stueck einzeichnen. aber die sourcen verraten da wie gesagt mehr, vermute ich zumindest.

mit qt5 habe ich auch noch nichts gemacht, aber es ist wohl relativ aehnlich zu qt4, und dazu gibt es ja massig tutorials etc., falls du erstmal sehen willst, wie man damit allgemein fenster mit dockbaren widgets etc. baut. die gui kannst du prinzipiell im designer zusammenstellen. falls du da eigene widgets reinsetzen willst (davon gehe ich mal aus), kannst du entweder plugins fuer den designer dazu bauen, oder einfache widgets per kontextmenue im designer "promoten". das steht aber auch in der doku denke ich.
allgemein kann ich die doku (im assistant) inkl. suchfunktion sehr empfehlen, wenn man etwas bestimmtes sucht, und auch fuer tutorials, und einige uebersichten.
wenn du spezialisierte views mit listen, baeumen und was nicht alles drin haben willst, hilft dir vllt. folgendes: http://qt-project.org/doc/qt-5.0/qtwidg ... mming.html und http://qt-project.org/doc/qt-5.0/qtwidg ... ew-classes.
zumindest ein eigenes model wirst du vermutlich brauchen, falls du es genau so haben willst, wie in dem qgit screenshot (gewoehnliche liste, plus eigene malereien in einer einzigen tabelle). das heisst, du wirst auch einiges an code per hand schreiben muessen. nur das layout kannst du komplett im designer machen.

entschuldige falls das ganze wenig strukturiertes gelaber ist. ich sollte langsam mal schlummern... ich hoffe es, hilft vllt. trotzdem ein bisschen.
Feuer
Beiträge: 20
Registriert: 19. April 2011 08:08

Re: TreeView für Projekte

Beitrag von Feuer »

Um so eine Darstellung zu erzielen wirst du deine Komponente selbst malen müssen. Du kannst hierbei auf bereits bestehende Qt Komponenten zurückgreifen oder du baust komplett eine eigene indem du von einem QWidget ableitest. Dabei musst du im paintEvent() dein Zeug zeichnen. Wenn du nicht weißt wie, dann sag einfach Bescheid und ich kann dir evtl. eine kleine Hilfestellung geben.
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

Re: TreeView für Projekte

Beitrag von Flashpixx »

Danke für die beiden Antworten. Grundsätzliche GUI Programmierung ist kein Problem, ich muss nur meine Qt Kenntnisse wieder auffrischen und mich dann in die Widgets einarbeiten. Ich habe bisher die GUIs komplett per Hand geschrieben, ich würde aber hier gerne wenigstens für das Grobdesign den Creator einsetzen.
Eine Frage hätte ich noch: Gibt es in Qt einen Tabview, also z.B. wie in den Browsern?
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Re: TreeView für Projekte

Beitrag von -=Freaky=- »

es gibt QTabBar, dann hast du nur die leiste, die dir z.b. signale beim tabwechsel emittiert.
und es gibt QTabWidget, wo du zu jedem tab schon eine "seite" hast, d.h. ein widget. die widgets sind quasi als stack angeordnet, und das, dessen tab aktiv ist, ist sichtbar.

alternativ zu widgets gibt es im uebrigen auch QtQuick mit QML (eine css-aehnliche markup-sprache) fuer guis, wozu der creator auch einen klick-designer bietet. hab ich bisher wenig mit gemacht, aber es gibt info und tutorials -> http://qt-project.org/doc/qt-5.0/qtquic ... index.html.
Flashpixx
Beiträge: 29
Registriert: 10. Juli 2007 12:54
Kontaktdaten:

Re: TreeView für Projekte

Beitrag von Flashpixx »

Das TabWidget sieht schon mal nach genau dem aus, was ich brauche, obwohl ich das QML sehr interessant finde
Antworten