Graphische Oberfläche

Proggen.org - Lernprojekt: Duplikatefinder
nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Graphische Oberfläche

Beitrag von nufan » Sa Mai 12, 2012 11:15 am

fat-lobyte hat geschrieben:
dani93 hat geschrieben:Wofür der letzte Stream ist verstehe ich nicht ganz (hab mir den Code auch nicht angesehen), aber cout kann nichts anrichten ^^
Das ist der Nachrichtenstream, wohin alle generierten Nachrichten geschrieben werden. Das sollte man bei einer grafischen Oberfläche in ein Fenster umleiten, bei wxWidgets gabs die Möglichkeit einen std::ostream in ein Textfeld umzuleiten. Gibts sowas bei Qt auch?
Hm... soweit ich weiß nicht. Der Umweg wäre den Stream in einem Zeitintervall auszulesen und den Text manuell umzuleiten. Aber ich denke vorübergehend ist cout eine akzeptable Lösung.
fat-lobyte hat geschrieben:
Ich habs bei mir lokal schon, ich meine im Repository.
Was genau heißt das jetzt? Meinst du auf deinem SVN branch? Das ist problematisch, wenn du deinen Branch wieder mergen willst. Wenn du es richtig gemacht hast, wäre es am besten, wenn ich nix mache, sondern du es einfach so lässt bis du deinen branch merged.
Nein, ich meinte nur über den CMake-Flag :)
Mein CMake-Aufruf sieht momentan so aus:

Code: Alles auswählen

cmake .. -DDEDUPE_BUILD_NCURSES=OFF -DDEDUPE_BUILD_QT=ON -DDEDUPE_WARNING_LEVEL=2

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 » Sa Mai 12, 2012 4:51 pm

dani93 hat geschrieben:Hab grad wieder an der Qt-Oberfläche weitergearbeitet. Dabei hab ich versucht deinen Entwurf nachzubauen, was mir denke ich nicht so schlecht gelungen ist :)
Sieht schon sehr hübsch aus. :)
dani93 hat geschrieben: "AppendFile()" und "RemoveFile()" sind etwas verwirrend. Einerseits verwenden sie noch die alten Bezeichnungen statt "Track" und "Untrack". Außerdem bekommen sie mehrere Parameter, also sollte ihr Name auch der Mehrzahl entsprechend geändert werden, sprich "TrackFiles()" und "UntrackFiles()".
Da hast du recht. Das wird auch noch geändert, ich habe nur gerade noch eine andere Baustelle. Ich kämpfe mit einem schweren Bug, der das Programm fast unbenutzbar macht und ich habe noch nichtmal eine Idee, was der Grund sein könnte :?
dani93 hat geschrieben: Weiters hab ich ein kleines Problem mit dem Datei-Dialog... man kann in Qt nicht Verzeichnisse und Dateien im selben Dialog auswählen. Man kann natürlich mehrere einzelne Dateien auswählen. Für Verzeichnisse braucht man jeweils einen eigenen Dialog. Beides mischen geht gar nicht.
Dann biete doch einfach einen Button mehr an: Verzeichnis hinzufügen und biete nur da Rekursion an. Dass das Ergebnis in der selben Funktion landet, merkt der Nutzer wohl kaum.
dani93 hat geschrieben: Soll der Kernel wirklich in der grafischen Oberfläche angelegt werden? Nach jetzigem Stand ist das für mich die einzige logische Möglichkeit. Ich lege ein Objekt folgendermaßen an:

Code: Alles auswählen

Kernel( ":memory:", 0, std::cout )
Dadurch sollte ich eine IMDB ohne Threading bekommen. Wofür der letzte Stream ist verstehe ich nicht ganz (hab mir den Code auch nicht angesehen), aber cout kann nichts anrichten ^^
Mach es bitte im Moment noch so. Das wird sich wohl noch ändern, damit das Kernelmodul ohne Programmneustart Regeln, Threadanzahl und ähnlich einlesen kann. Threadanzahl wird dann aus dem Konstruktor fliegen. Da aber davon noch nichts implementiert ist, musst du dich darum noch nicht kümmern. :memory: ist übrigens eher schlecht, wenn du eine Datenbank anlegen lassen willst ;)
Wie fat-lobyte schon richtig gesagt hat, ist der letzte Parameter der Nachrichtenstream. Dort wird jede Meldung des Kernels und der darunterliegenden Module abgelegt, also auch Fortschrittsanzeigen, wenn ich denn mal welche eingebaut habe. Ich dachte an Stringkonstanten zu beginn jeder Meldung, damit man die Nachrichten filtern und zuordnen kann. Das ist aber nur ein Model in meinem Kopf. Still Alpha ;)
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » Sa Mai 12, 2012 4:54 pm

dani93 hat geschrieben:Nein, ich meinte nur über den CMake-Flag :)
Mein CMake-Aufruf sieht momentan so aus:

Code: Alles auswählen

cmake .. -DDEDUPE_BUILD_NCURSES=OFF -DDEDUPE_BUILD_QT=ON -DDEDUPE_WARNING_LEVEL=2
So, habs geändert.

Übrigens sollte es normalerweise ausreichen, CMake nur das erste Mal aufzurufen. Danach kann man alles mit make bauen, selbst wenn sich die CMake-Files geändert haben sollten oder man ein update gemacht hat.
Das Verzeichnis zu löschen und ganz neu konfigurieren sollte eher die Ausnahme sein.

Ein Tip: Verwendet doch cmake-gui! Da kann man sich die Konfiguration zusammenklicksen, die man haben möchte. Ich verwende es gerne.
Haters gonna hate, potatoes gonna potate.

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 » Sa Mai 12, 2012 5:48 pm

fat-lobyte hat geschrieben:Ein Tip: Verwendet doch cmake-gui! Da kann man sich die Konfiguration zusammenklicksen, die man haben möchte. Ich verwende es gerne.
Eine Frage: Bestehen noch Chancen auf ein cmake-Tutorial?
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
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » Sa Mai 12, 2012 6:16 pm

Xin hat geschrieben:Eine Frage: Bestehen noch Chancen auf ein cmake-Tutorial?
Prioritätenliste:
- Labor
- Laborprotokoll
- Bakkarbeit
- Praktikumsprojekt
- Leben
- Master finden
- Lesen
- nuke-ms
- dedupe
- Git-Tutorial
- CMake-Tutorial
- ...

Rechne es dir aus ;-)

Willst du CMake nur als Anwender verwenden? Wenn ja, dann weiß ich nicht genau wofür man ein Tutorial braucht. Glaube nicht dass dani93 und Bebu die riesen-CMake-Profis sind, aber mit ein bisschen probieren kommen sie zurecht.
Das Prinzip ist einfach: gehe in einen Ordner wo du Platz hast, zige CMake das Quellcodeverzeichnis, und rufe dann GNU Make auf. Wenn du etwas verändern willst, rufe cmake-gui auf und setze dort diverse Flags und Variablen.

Wenn du selbst hacken willst, dann muss ich ziemlich viel Zeit in das Tutorial investieren, bis es etwas nützt - und diese Zeit habe ich nicht. Du seist auf
http://www.cmake.org/cmake/help/cmake_tutorial.html
und
http://www.cmake.org/cmake/help/v2.8.8/cmake.html
und
http://kitware.stores.yahoo.net/masteringcmake.html
verwiesen.
Ich wüsste nicht, was ich mit angemessenen Aufwand besser als diese Tutorials/Bücher machen könnte.
Haters gonna hate, potatoes gonna potate.

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 Mai 13, 2012 8:39 am

fat-lobyte hat geschrieben:
Xin hat geschrieben:Eine Frage: Bestehen noch Chancen auf ein cmake-Tutorial?
Prioritätenliste:
- Labor
- Laborprotokoll
- Bakkarbeit
- Praktikumsprojekt
- Leben
- Master finden
- Lesen
- nuke-ms
- dedupe
- Git-Tutorial
- CMake-Tutorial
- ...

Rechne es dir aus ;-)
Du setzt in meinen Augen die Prioritäten falsch ;-D
Ne, passt schon. ;-)
fat-lobyte hat geschrieben:Willst du CMake nur als Anwender verwenden? Wenn ja, dann weiß ich nicht genau wofür man ein Tutorial braucht. Glaube nicht dass dani93 und Bebu die riesen-CMake-Profis sind, aber mit ein bisschen probieren kommen sie zurecht.
Ich frage aber ungern, wie ich nun meine NCurses-Version zusammen gestellt bekomme, da es das dedupe-ncurses Target nicht mehr gibt. Im Idealfall wende ich cmake jetzt so an, dass ich das wieder bekomme.
fat-lobyte hat geschrieben:Ich wüsste nicht, was ich mit angemessenen Aufwand besser als diese Tutorials/Bücher machen könnte.
Sie auf Deutsch formulieren.

Ich für meinen Teil bevorzuge deutsche Tutorials, weil ich nicht englisch lernen will, sondern das, was im Tutorial steht. Selbiges gilt für junge Leute, die noch nicht gut genug in Englisch sind, wie auch für ältere, die Englisch nicht so gut gelernt oder wieder vergessen haben. Es muss auch nicht besser sein, es muss ein Anfang sein, dass man ein Grundverständnis erlangt und in die Materie reinkommt.
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
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » So Mai 13, 2012 7:53 pm

Xin hat geschrieben:Ich frage aber ungern, wie ich nun meine NCurses-Version zusammen gestellt bekomme, da es das dedupe-ncurses Target nicht mehr gibt. Im Idealfall wende ich cmake jetzt so an, dass ich das wieder bekomme.
Du musst einmal cmake mit dem Flag "-DDEDUPE_BUILD_NCURSES=ON" aufrufen. Alternativ dazu kannst du in cmake-gui 1) Dein dedupe-Verzeichnis auswählen 2) DEDUPE_BUILD_NCURSES anhaken, und 3) Konfigurieren und Generieren klicken:
dedupe-cmake.png
Xin hat geschrieben:Sie auf Deutsch formulieren.
Gut, das würd ich mir noch einreden lassen. Von den meisten Tutorials gibts eh deutsche versionen.
Sollte das tatsächlich ein Grund für mich sein, würde ich eher das jeweilige Tutorial übersetzen und nicht ein ganz neues schreiben. Dann würde ich aber auch den Autor kontaktieren, ob der nicht meine Übersetzung hosten will, und sie nicht einfach auf proggen.org posten.
Xin hat geschrieben:Ich für meinen Teil bevorzuge deutsche Tutorials, weil ich nicht englisch lernen will, sondern das, was im Tutorial steht.
[/quote]
Hm, dann müsste es für dich allgemein schwer sein Doku zu finden? Die meiste und beste Information ist nunmal auf Englisch.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Graphische Oberfläche

Beitrag von nufan » Di Mai 15, 2012 11:16 pm

Meine Oberfläche unterstützt jetzt den linken Teil der Skizze. Das mit der rekursiven Suche muss ich noch anpassen, sonst ist es fertig.
Falls es was neues zum Einbauen gibt bitte melden.

Antworten