Graphische Oberfläche

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Do Jun 24, 2010 8:04 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Do Jun 24, 2010 8:10 pm

Xin hat geschrieben: Bebu wird ungeduldig, so schreibt er. ^^
Bin halt kein Fußballfan...
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Do Jun 24, 2010 8:40 pm

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. ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: Graphische Oberfläche

Beitrag von stampuhh » Fr Jun 25, 2010 10:14 pm

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
NachDenkSeiten.de

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Di Jun 29, 2010 5:58 pm

stampuhh, kannst Du Dich auch auf die Todo-Liste eintragen und nach Möglichkeit ein Datum in die Timeline zu setzen?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: Graphische Oberfläche

Beitrag von stampuhh » So Jul 04, 2010 12:55 pm

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
NachDenkSeiten.de

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » So Jul 04, 2010 1:33 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » So Jul 04, 2010 4:54 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: Graphische Oberfläche

Beitrag von stampuhh » Di Jul 06, 2010 10:46 am

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
NachDenkSeiten.de

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Di Jul 06, 2010 11:27 am

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
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten