Plasmoid-Entwicklung mit C++

Hinweis: In dem Thema Plasmoid-Entwicklung mit C++ gibt es 12 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo :)


    Ich habe mir in der Schule vorgenommen einen Plasmoid zuschreiben welcher das planen/Durchführen von Projekten vereinfacht. Den Plasmoid will ich in C++ schreiben da ich mir vorstellen kann, dass ich auch später etwas mit C++ anfangen kann.


    Programmiererfahrungen habe ich bereits in Java und UnrealScript , mit C++ Habe ich bisher eigentlich noch nichts großes gemacht . Ich habe bisher nur einige einfache Plasmoiden mit C++ auf den Desktop gebracht ( Einfache Gui , Buttons mit Funktionen etc..)


    Der Plasmoid den ich entwickeln will soll folgendes können:


    • Eingabe einer Gliederung und eines Zeitplan


    • Abrufen einer Gliederung und eines Zeitplan


    • Warnung vor Zeitüberschreitung und Erinnerung an den Zeitplan



    So soll der Plasmoid aussehen :


    [Blockierte Grafik: http://up.picr.de/12280048xo.jpg]



    Hier zum Verständnis noch ein Ablaufdiagramm


    [Blockierte Grafik: http://up.picr.de/12280047th.jpg]


    Leider reicht das was ich in den offiziellen Dokumentationen bisher gelesen habe nicht dafür aus, Die Frage die sich mir stellt ist , wie setze ich das ganze durch ?


    Um meine eigentliche Frage zu konkretisieren


    -Wenn ich einen Plasmoid schreiben , wie kann ich auf andere Bibliotheken zugreifen ? Geht das überhaupt ? Wie bekomme ich es hin das sich z.b ein neues Fenster öffnet ? Unter Java hätte ich das einfach durch die Initialisierung einer neuen Klasse geregelt ,wie könnte ich das hier lösen ?


    -Wie könnte ich das einspeichern des Zeitplans hinbekommen ? Unter Windows hätte ich das ganze einfach als Txt Datei gespeichert oder einfach eine Klasse geschrieben welche das regelt und diese dann serialisiert.Welche Möglichkeiten habe ich unter C++ und Linux ?


    Es tut mir leid das ich hier vieleicht einige dumme Fragen stelle, aber ich bin was C++ und Linux angeht ein totaler Neuling.


    Ich würde mich sehr freuen , wenn mir jemand ein paar Tipps geben könnte oder mich auf den ein oder anderen Link verweisen könnte :)


    LG Philip

    6 Mal editiert, zuletzt von philip2007 ()

    Für den Inhalt des Beitrages 47581 haftet ausdrücklich der jeweilige Autor: philip2007

  • Den Zeitplan kannst du speichern wie du willst ;)
    Zum Beispiel:

    Code
    ~/.prog_name/NAME.cfg


    Hilft dir dieser Link etwas weiter?


    Ich bin nach Ansi-C(++) auf Java umgestiegen...


    Andere Bibliotheken müsstest du in C++ eben einfügen.
    Das sind Header-Files:
    #include <XXX.h>



    Grafikprogrammierung habe ich noch nie (mit C++) gemacht.
    Aber generell sollte dein Programm auch ohne die GUI funktionieren.
    Erst wenn das Programm läuft würde ich die GUI dazu machen, dann zwingst du dich schonmal dazu deinen Code so zu schreiben, dass "Business-Daten" und eigtl. GUI unabhängig voneinander funktionieren.
    Wenn du das Zusammenhexelst und irgendwann die GUI ändern willst könnte das um einiges mehr Aufwand bedeuten.


    Aber ich glaube das du für die Plasmoids auch das Qt-Framework verwenden werden musst.
    Da kannst du dir auch schonmal was zu anschauen.


    In C++ hast du übrigens auch Klassen ;)
    C++ Klassen sind zwar extrem unübersichtlich (zumd. für die Java'janer), aber sie funktionieren.
    Du musst bedenken, dass du in C++ Mehrfachvererbung hast und (nicht unbedingt) Interfaces, daher musste der Code dementsprechend angepasst werden.


    C++ hat viele Ähnlichkeiten aber auch viele Unterschiede zu Java.
    Ich würde also zuerst C++ selbst näher lernen..
    (Modultrennung... Pointer != Referenzen..., Copy-By-Value, Copy-By-Reference)


    Du wirst zum Beispiel keine for-each-Schleife in einem C++-Code finden :D
    In C++ musst du einen Array eben beispielsweise manuell durchlaufen..
    [cs]for (int i = 0; i < array.length; i++) {}[/cs]


    Du hast also einiges vor ;)

    ___________________________________________________________________________________
    Zypper Befehlsreferenz

    Für den Inhalt des Beitrages 47584 haftet ausdrücklich der jeweilige Autor: lush

  • um in C++ vernünftige Plasmoids schreiben zu können, musst du das Framework Qt bedienen können.
    Qt ist ein riesiges Toolkit.


    Und zum Überblick, was dann innerhalb von KDE/Plasma alles wichtig ist, die KDE Developer Seite


    Wenn du dich mit Qt angefreundet hast, wirst du andere Fragen stellen.

    Für den Inhalt des Beitrages 47587 haftet ausdrücklich der jeweilige Autor: uhelp

  • ... und um das Qt-Framework bedienen zu können benötigst du zumd. Ansi-Grundkenntnisse von C++


    Das bedeutet Grundkonstrukte wie die Schleifen, Bedingungen, Arrays, Pointern, Funktionen und sehr wichtig eben auch die Klassen.


    Das beinhaltet natürlich allgemein Abstraktion.. Polymorphie (bzw. Virtuelle Methoden) und so weiter :D
    Wie bereits gesagt: Du hast einiges vor.


    Aber du solltest dich relativ schnell an C++ gewöhnen wenn du einigermaßen Java kannst.

    ___________________________________________________________________________________
    Zypper Befehlsreferenz

    Für den Inhalt des Beitrages 47590 haftet ausdrücklich der jeweilige Autor: lush

  • Danke für die Hilfe :)


    Ähm..Ein Plasmoid ohne eine Grafische Oberfläche könnte komisch wirken.. ;)


    Was Pointer,Referenzen,Copy by value,Copy by reference ist und wie man klassen importiert war mir schon klar (wie bau ich den sonst eine Gui auf ? :D ) ^^


    Nur wenn ich z.b eine Klasse schreibe...



    Den Code hab ich aus irgendeiner Main-Funktion kopiert , und ich kenn mich noch nicht aus mit qt oder Gui´s(c++, unter Java kamm ich mit Swing ganz gut zurecht), also bitte nicht böse sein wenn der Code gerade völliger Bullshit ist. (Vieleicht könnte mir jemand zeigen ,wie es funktionieren würde ? :)


    und wenn ich dazu jetzt noch ein header file schreiben würde , und dieses dann importieren würde...


    könnte ich dann einfach wie bei Java ein Objekt dieser "frame Klasse" erzeugen und dann hätte ich mein Fenster ? oder wie löst man das unter c++ ?


    LG Philip

  • installiere dir das komplette Qt samt Doku.
    Und nimm den "qt-creator" als IDE.


    Arbeite dort die Beispiele durch.


    Dort ist für jede Frage ein Beispiel.


    ggf. die aktuelle Version von Trolltech selbst laden.
    Auf jeden Fall die Beispiele durch arbeiten.
    .

    Für den Inhalt des Beitrages 47600 haftet ausdrücklich der jeweilige Autor: uhelp

  • Ich werde mir jetzt mal genauer Qt anschauen .. Anscheinend komme ich da nicht drum herum :)


    Ich hab jetzt kurz mal nach diesem Qt-Creator geguckt und soweit ich das gesehen hab ist der doch kostenpflichtig ?


    Nun ja , ich bedanke mich nochmal für die vielen Tipps und werde mich mich nunmal um Qt kümmern.


    Wenn ich irgendwo ein Problem oder eine Frage hab meld ich mich wieder :)


    LG Philip

  • Hi philip2007


    Den Qt-Creator kannst du einfach über Yast/Zypper Installieren.
    Liegt im Oss-Repo.


    Code
    zypper se -s qt-creator
    
    
    S | Name       | Typ   | Version     | Arch   | Repository       
    --+------------+-------+-------------+--------+------------------
      | qt-creator | Paket | 2.5.0-2.1.2 | x86_64 | openSUSE-12.2-Oss
      | qt-creator | Paket | 2.5.0-2.1.2 | i586   | openSUSE-12.2-Oss

    Für den Inhalt des Beitrages 47612 haftet ausdrücklich der jeweilige Autor: D_Dau

  • Danke ,


    Ich hab mir den qt-creator runtergeladen und nach einigen stunden auch den eigentlichen integrierten designer zum laufen gekriegt(Keine Ahnung wieso der´s erst nicht tun wollte) Ich habe einige einfache Grafische Oberflächen erstellt , was mich wundert ist das bei den ganzen Beispielen bisher nie eine .ui Datei dabei war ? So konnte ich das ganze gar nicht in diesem Designer öffnen ... Nun ja wie dem auch sei...


    Auf der KDE-Techbase Seite (http://community.kde.org/User:Mxttie#Adding_configuration)


    Steht das ich einfach eine gui erstellen kann mit dem gui designer und diese dann einfach im "build" file hinzufügen kann

    Zitat

    The easiest thing to do, is create your gui using the gui designer. Add this form to your build file: kde4_add_ui_files(telemeter_SRCS telemeterConfig.ui)

    Leider weiß ich nicht so recht was mein "buildfile" ist ? Ich hätte jetzt auf die cmakelists getippt aber das erscheint mir irgendwie komisch..


    Das wiederum sieht mir doch nach einer .cpp datei aus ? oder was ist da nun los ? Muss ich das erste in die cmakelists datei packen und das nächste in meine Datei wo ich die ganzen komponenten initialisiere ?


    LG Philip