Graphische Oberfläche: Tabelle
-
Hallo Leute
also ich hänge ziemlich bei einer Problemaufgabe, die mir in der Arbeit gestellt wurde ( Mache gerade ein praktikum). Und zwar geht es um das Programmieren von einer Tabelle ( 5 Spalten/8 Zeilen) die dann folgendermaßen Ausschauen soll:
http://img697.imageshack.us/img697/4584/tabelle0.png
Meine Frage ist, wie erstelle ich nun einen geeigeneten C/C++ Code, der mir diese Tabelle realisiert ?
Also ich kenne mich mit C und C++ realtiv gut aus, da ich das im Studium in den Grundlagenfächern gelernt habe. Jedoch habe ich noch nie mit einer Graphischen Oberfläche gearbeitet.Meine Fragen deshalb:
1. Wie kann ich diese Tabelle graphisch realisieren
2. Kann ich diese Tabell dann auch noch bearbeiten ( Später soll ein X das entsprechende Feld markieren)
3. funktioniert dies mit C oder C++ ?
4. gibt es eventuell noch (gute!!) Bücher bei denen man sich etwas mehr in das Thema Graphische Oberflächen einarbeiten kann ?Ich hoffe ihr könnt mir weiterhelfen
Bin sonst hier ziemlich verloren auf der Arbeit und mir kann sonst niemand helfen!
MFG
Madleine
-
Ist C++ vorgegeben oder gehts nur um den praktischen Nutzen -> Excel o. ä.
Wenn C++ vorgegeben ist, wirds wohl auch ein paar C++-Entwickler in der Bude geben. Die werden wahrscheinlich alle dieselbe Grafikbibliothek für die Produkte des Unternehmens verwenden. Dann solltest du diese Bibliothek auch verwenden, denn die anderen können nachher leichter deinen Code bewerten und du hast das Know-How direkt neben dir sitzen, wenn du mal ne Frage hast.
-
Jupps, sollte nichts in Excel sein.
Der Plan ist es, einen Wert aus einer Text Datei zu lesen, diesen "umzuwandeln" und dann in diesem Raster mit einem X zu markieren. Deswegen sollte es programmiert werden ( mit C/C++)Problem ist, mit dieser Aufgabe bin ich hier ziemlich alleine bzw. ich habe keinen Informatiker den ich Ansprechen könnte also auch keine entsprechende Bibliothek. Das heißt ich kann den Code komplett selbst erstellen. Mir geht es erstmal dadrum, wie programmiere ich sowas grunsätzlich, was brauche ich dazu
also ich benutez Visual Studios 2008
-
Hallo, an sich ist das recht simpel. VisualStudio empfehle ich hier mal nicht. Schau dich mal hier um: http://qt.nokia.com/ das ist ein komplettes Gui-Framework. Da gibt es auch ein komplett Paket zum Download (IDE - QtCreator + SDK). Da kannst du dann deine Tabelle "einfach" Malen im Gui-Designer. Was du nur noch machen musst ist mit C++ Die Datei öffnen, auslesen und das X an entsprechender Stelle setzten. Ist mit Qt alles recht einfach.
Die Frage ist nur wie deine Programmier-Kenntnisse sind, den wenn du mit Gui anfängst und keinerlei C++ Erfahrung hast, kann das recht frustrierend werden.
Das wäre in meinen Augen jetzt mal die schnellste Lösung, natürlich geht das auch mit wxWidgets, jedoch kenne ich mich da nicht aus.
so long
jd
-
Oh das klingt ja schon mal gut, also das mit GUI ( aber davon hab ich noch nie was gehört *g*)
also C++ hab ich mal die Grundlagen gemacht, wie öffne ich datein, wie geb ich was aus ( also circa 1 Semester haben wir das gemacht) aber eben nicht vertieft geübt !!
Das rein in C++ zu machen ist zu schwer/ zu komplex ?!
danke für die schnellen Antworten
LG
Madleine
-
Natürlich kannst du deine Gui auch in Plain-C++ schreiben, aber ich denke nicht das du das willst :-). Files einlesen ist recht simpel. Es gibt mehrere Methoden, entweder Plain C++, Boost-Library, oder wenn du mit Qt arbeitest dann mit Qt. Je nachdem wofür du dich entscheidest, alles funktioniert und alles hat vor und nachteile.
Plain C++
Bekommst ein Problem mit Pfaden wenn es auf verschieden Betriebssystemen laufen soll. (C:\mein\pfad) Da C++ und Filesystem das ist immer so eine Sache.
Boost
Cross-Plattform, dafür etwas schwieriger, aber im Handling allgemein leichter.
Qt
Wenn du Qt als Gui verwendest bietet sich es auch an es mit Qt zu machen, da dann alles schon in Qt-Spezifischen Daten-Typen ist und du dir eine menge rum gecaste ersparst. Das ist natürlich auch Cross-Platform.
Du kannst natürlich auch dein Chef frage, welche vorgaben du hast, oder lass dir welche geben. Dann bist du auf der sicheren Seite, dann kann man das Problem konkret angehen. Eine Diskussion welche Vorgehensweise hier am sinnvollsten ist, könnte noch 2-3 Wochen dauern, da jeder eine andere Meinung und eine andere Arbeitsweise hat, oder der eine Qt nicht mag.
so long
jd
-
jd schrieb:
Natürlich kannst du deine Gui auch in Plain-C++ schreiben
Nö. C++ kennt keine Oberflächen.
Plain C++
Bekommst ein Problem mit Pfaden wenn es auf verschieden Betriebssystemen laufen soll. (C:\mein\pfad) Da C++ und Filesystem das ist immer so eine Sache.
Benutz '/' und du bist das Problem los.
Boost
Cross-Plattform, dafür etwas schwieriger, aber im Handling allgemein leichter.
Qt
[...] Das ist natürlich auch Cross-Platform.
Und Standard-C++ ist es nicht?
Du kannst natürlich auch dein Chef frage, welche vorgaben du hast, oder lass dir welche geben. Dann bist du auf der sicheren Seite, dann kann man das Problem konkret angehen.
Das wird das Sinnvollste sein.
-
Kannst du das nicht einfach in C# machen? Das wär soviel einfacher, du glaubst es kaum...
-
Michael E. schrieb:
Nö. C++ kennt keine Oberflächen.
Schon klar
meinte ehr ohne Gui-Framework.
Michael E. schrieb:
Benutz '/' und du bist das Problem los.
Stimmt, da ich das nur mit Boost mache, habe ich daran gar nicht gedacht.
Michael E. schrieb:
Und Standard-C++ ist es nicht?
War auf Gui bezogen.
Hätte mich wohl etwas klarer ausfrücken sollen.
so long
jd
-
Das Problem ist: C++ kommt standardmäßig nicht mit einer grafischen Oberfläche. Aber es gibt zahlreiche Bibliotheken dafür. Nun ist die Frage, welche Bibliothek du verwenden willst. Frag am besten mal deinen Betreuer, welche Bibliothek für Oberflächen in der Firma benutzt wird.
Wenn der dir nicht weiterhelfen kann, dann nimm einfach Qt: http://doc.qt.nokia.com/stable/qtableview.html
(Wenn es nur um die Darstellung geht, dann reicht vielleicht auch einfach, wenn du eine CSV-Datei ausgibst. Die kann man dann ganz einfach in Excel, LibreOffice und allen möglichen anderen Softwarepaketen öffnen. Oder wenn es bereits formatiert sein muss, dann als HTML-datei, die man dann im Browser öffnen kann.)
-
rüdiger schrieb:
Wenn der dir nicht weiterhelfen kann, dann nimm einfach Qt: http://doc.qt.nokia.com/stable/qtableview.html
Die einfachere Lösung wäre wohl QTableWidget, da das QTableView für die Daten erst noch ein passendes Model braucht - und da muss man sich erst noch zusätzlich einarbeiten.
Aber eine komplett andere Frage:
Soll das am Ende eine per Maus bedienbare GUI geben? Im Ausgangspost lese ich nur "eine Tabelle grafisch ausgeben, die dann so aussehen soll". Wenn man das "so aussehen" absolut wörtlich nimmt, darf man bei der GUI-Darstellung noch ordentlich rummurksen (am einfachsten bei QT mit StyleSheets).
Wenn man hier schon sagt "nicht wörtlich" würde ich gleich sagen "keine GUI" und auf Ascii-Tabelle auf einer Konsole verweisen. Das geht mit Standard-C++ ohne extra GUI-Frameworks, und sollte die schnellste Lösung des Problems sein.
-
Mich würde immer noch interessieren ob das unbedingt in C++ sein muss, denn mit anderen Werkzeugen (z.B. C#) kommt man da sicherlich schneller ans Ziel, vor allem wenn man jetzt mit C++ und Qt nicht ganz so fit ist...