Seite 2 von 10

Re: Graphische Oberfläche

Verfasst: Do Jun 24, 2010 8:04 pm
von Xin
stampuhh hat geschrieben:Ich lebe noch, war nur diese Woche etwas viel am Fussball schauen...und da ist ja der komplette Nachmittag immer sofort gelaufen. Aber das geht ja auch nicht mehr lange und dann bin ich wieder voll dabei. Hoffe das nimmt mir hier keiner übel :(
Bebu wird ungeduldig, so schreibt er. ^^
stampuhh hat geschrieben:Habe aber eh noch eine kurze Nachfrage. Und zwar was genau verstehst du unter "Interface"? Wenn ich den Javabegriff nehme dann wäre das in C++ etwa eine Headerdatei... :roll:
Genau das ist ist ein Interface.
stampuhh hat geschrieben:Ich soll mir also mehr oder weniger Methoden-bzw Aktionsnamen überlegen wie zB OnMenuEditSave (Datei-->Speichern) oder so was in der Art?
Ja, so in etwa.
Allerdings kannst Du dabei auch überlegen, ob die Aktion wichtig ist, oder der Ort, wo sie ausgeführt wird.
Heißt, ob "Save" über einen Button oder über das Menü ausgeführt wird, beide sollten wohl auf eine Funktion 'OnSave( ... )' abgebildet werden.

Re: Graphische Oberfläche

Verfasst: Do Jun 24, 2010 8:10 pm
von Bebu
Xin hat geschrieben: Bebu wird ungeduldig, so schreibt er. ^^
Bin halt kein Fußballfan...

Re: Graphische Oberfläche

Verfasst: Do Jun 24, 2010 8:40 pm
von Xin
Bebu hat geschrieben:
Xin hat geschrieben: Bebu wird ungeduldig, so schreibt er. ^^
Bin halt kein Fußballfan...
Ich auch nicht, aber ich gucke diese WM auch gelegentlich. Aber ich fahre weiterhin ohne Fähnchen. ;-)

Re: Graphische Oberfläche

Verfasst: Fr Jun 25, 2010 10:14 pm
von stampuhh
oki dann ist alles klar bezüglich dem Interface ;)

Fussballfan bin ich btw auch nicht....mir gehts da wie Xin..auch noch ohne Fahne unterwegs :D
Spiele gucke ich aber trotzdem. Warum mich das auf einma so "mitreißt" kann ich aber net beantworten :roll:

Aber ist ja ein Ende in Sicht :P

gruß stampuhh

Re: Graphische Oberfläche

Verfasst: Di Jun 29, 2010 5:58 pm
von Xin
stampuhh, kannst Du Dich auch auf die Todo-Liste eintragen und nach Möglichkeit ein Datum in die Timeline zu setzen?

Re: Graphische Oberfläche

Verfasst: So Jul 04, 2010 12:55 pm
von stampuhh
So...

habe ich getan. Ich muss morgen noch ein Spiel vorstellen inner Uni und war damit diese Woche noch beschäftigt (wenn ich mal drinnen war ;) ) und ab Dienstag hab ich dann Zeit und werde mich mit dem Interface beschäftigen. Zu dem Dialog kann ich leider keine Deadline angeben^^
Da weiß ich leider überhaupt nicht was für Probleme auf mich zukommen könnten (sowohl Programmiertechnisch als auch Reallife) :roll:

Sry noch mal dass ich so selten da bin, aber sitze gerade bei ca. 30° hier vorm PC und es ist unerträglich :(

gruß stampuhh

Re: Graphische Oberfläche

Verfasst: So Jul 04, 2010 1:33 pm
von Xin
stampuhh hat geschrieben:habe ich getan. Ich muss morgen noch ein Spiel vorstellen inner Uni und war damit diese Woche noch beschäftigt (wenn ich mal drinnen war ;) ) und ab Dienstag hab ich dann Zeit und werde mich mit dem Interface beschäftigen. Zu dem Dialog kann ich leider keine Deadline angeben^^
Okay, dann werde ich das mal angehen und Du arbeitest Dich in ein GUI-Framework ein.

Wir haben uns bisher nicht entgültig auf Qt oder wxWidgets geeinigt. Gibt es Präferenzen?
stampuhh hat geschrieben:Sry noch mal dass ich so selten da bin, aber sitze gerade bei ca. 30° hier vorm PC und es ist unerträglich :(
Komisch, das hier ähnlich.

Re: Graphische Oberfläche

Verfasst: So Jul 04, 2010 4:54 pm
von Xin
Ich habe jetzt mal ein sehr einfaches Interface für das Hauptfenster eingescheckt.

Das zum einen als Beispiel zur Dokumentation und zusätzlich muss nun langsam eine Implementation eines derartigen Interefaces folgen.
Initialisierung usw. kann anschließend in der vom Interface abgeleiteten Klasse geschehen.

Re: Graphische Oberfläche

Verfasst: Di Jul 06, 2010 10:46 am
von stampuhh
Also werde mir das gleich einmal anschauen. Wie gesagt würde ich lieber wxWidgets nehmen weil ich da wenigsten schon ein bisschen mit gearbeitet habe.

Wo gehören denn so Methoden hin wie speichern oder öffnen?
Bei wxWidgets ist es ja so dass jede Aktion eine Methode zugewiesen bekommt.
Heißt, ob "Save" über einen Button oder über das Menü ausgeführt wird, beide sollten wohl auf eine Funktion 'OnSave( ... )' abgebildet werden.
Werde mir jetzt das hier einmal überlegen und dann sollten wir vielleicht diskutieren welche Aktionen/Menüpunkte es noch geben muss? Oder erst einmal auf die wichtigsten reduzieren?

Menü:
1) Datei:
Speichern, als Projekt speichern, Projekt Öffnen, Beenden
2) Bearbeiten: Ordner hinzufügen, Ordner entfernen, Ordner indizieren, Einstellungen
3) Ansicht: Ergebnisse, Mülleimer, Spalten anzeigen
4) Info/About, Hilfe

Namen entsprechend: OnSave, OnSaveAsProject, OnOpen, OnClose, OnEdit, etc
Wenn ich wxWidgets nehme dann schaut das so in etwa aus:

Code: Alles auswählen

void AbgeleitetVonMain::OnSave(wxCommandEvent& event)
Ordner hinzufügen/entfernen/indizieren und Ergebnisse+Mülleimer lassen sich jeweils durchs Menü als auch über die Buttons (+, -, etc) aufrufen. Spalten anzeigen ebenfalls per Rechtsklick auf die Tabelle (Wenn wir eine Tabelle als Anzeige nehmen)

Soll man das Ganze als Projekt speichern können?
Du hast eine AppendFile( Dedupe::File & file )-Methode...ist das gleichbedeutend mit ganzen Ordnern hinzufügen? Oder wird die OnAddFolder die AppendFile-Methode aufrufen je nachdem wie viele Dateien in dem Ordner sind?
Oder soll man auch einzelne Dateien hinzufügen können?

gruß stampuhh

Re: Graphische Oberfläche

Verfasst: Di Jul 06, 2010 11:27 am
von Xin
stampuhh hat geschrieben:Also werde mir das gleich einmal anschauen. Wie gesagt würde ich lieber wxWidgets nehmen weil ich da wenigsten schon ein bisschen mit gearbeitet habe.
Das ist von meiner Seite aus okay.
stampuhh hat geschrieben:Wo gehören denn so Methoden hin wie speichern oder öffnen?
Bei wxWidgets ist es ja so dass jede Aktion eine Methode zugewiesen bekommt.
Kein Problem, solange die Methode ein von wxWidgets unabhängiges Signal an das Programm übermittelt.
stampuhh hat geschrieben: Werde mir jetzt das hier einmal überlegen und dann sollten wir vielleicht diskutieren welche Aktionen/Menüpunkte es noch geben muss? Oder erst einmal auf die wichtigsten reduzieren?
Beides. Das wichtigste umsetzen, alles andere zur Diskussion stellen.

Wenn Du in mein Interface guckst, dann findest Du vier oder fünf Buttons - das war's.
Wenn wir das haben, sehen wir weiter.
stampuhh hat geschrieben: 1) Datei:
Speichern, als Projekt speichern, Projekt Öffnen, Beenden
2) Bearbeiten: Ordner hinzufügen, Ordner entfernen, Ordner indizieren, Einstellungen
3) Ansicht: Ergebnisse, Mülleimer, Spalten anzeigen
4) Info/About, Hilfe
Sieht grundsätzlich aber gut aus.
stampuhh hat geschrieben:Wenn ich wxWidgets nehme dann schaut das so in etwa aus:

Code: Alles auswählen

void AbgeleitetVonMain::OnSave(wxCommandEvent& event)
So darf das nicht aussehen, die Interfaceklasse abstrahiert die GUI, also dürfen Klassen wie exCommandEvent nicht auftauchen.
stampuhh hat geschrieben:Soll man das Ganze als Projekt speichern können?
Du hast eine AppendFile( Dedupe::File & file )-Methode...ist das gleichbedeutend mit ganzen Ordnern hinzufügen? Oder wird die OnAddFolder die AppendFile-Methode aufrufen je nachdem wie viele Dateien in dem Ordner sind?
Oder soll man auch einzelne Dateien hinzufügen können?
Ich habe das gedanklich mit Dedupe::File abstrahiert - es wäre mir also egal, ob es ein Ordner oder eine Datei ist.
In der Übersichtsliste würde ich aber nur das Anzeigen, was der User konkret ausgewählt hat - also keine Dateien, die in ausgewählten Ordnern liegen.

Code: Alles auswählen

Dir    c:\Eigene Dateien\
Dir    d:\
File   e:\temp.jpg