Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.11.2016, 16:02

Anfänger freundliches GUI Framework für C++ gesucht

Hallo,
ich programmiere schon eine Weile C++, möchte jetzt aber, bevor ich versuch ein richtiges 2d Spiel zu Programmieren, ein wenig üben. Ich dachte da an ein Gui Framework mit dem ich einfache Programme versuche zu programmieren (kleine Datenbank, Termrechner,...). Allerdings bin ich bis jetzt ziemlich verwirrt was diese Bibliotheken an geht und habe die wenigsten zum Laufen gebracht.

wxWidgets:
+ viele Features
+ nativer Look
- ziemlich kompliziert
- teilweise gar nicht zum laufen bekommen
- schreckliche Dokumentation
- Überladen
- wirkt ziemlich, nun ja zusammengeflickt...

FLTK:
- schlechte Dokumentation
- nicht zum laufen bekommen
+/- hässlich

U++:
+ nativer Look
+ gute Dokumentation
+ nicht so viel "Zeug" zu linken
- keine Anleitung zum Benutzen außerhalb der mitgelieferten IDE

QT:
+ gute Dokumentation
+ nativer Look
+ viele Features
- Kommerziell
- Überladen
- Ökosystem
- andere C++ Syntax

Am besten wäre es, wenn mir jemand eine gute Anleitung zum installieren von U++ außerhalb der IDE geben könnte, da mir das Framework, den Tutorials zufolge, sehr gut gefällt. Falls mir jemand ein Anderes, sehr gutes Framework mit guter Dokumentation empfehlen kann, ist er aber auch sehr willkommen :D Platform Unterstützung von mindestens Win u. Linux ist ein muss, ggf. auch Mac.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

07.11.2016, 16:31

Ich weiß nicht ob es unbedingt einfacher wird eine Gui Anwendung anstatt eines 2D Spiels zu entwickeln. Wenn du ein Spiel entwickeln willst dann schnapp dir SFML2 und leg los. Wenn du dir das nicht zutraust und du mit den Gui Frameworks überfordert warst solltest du vielleicht erst mal noch ein wenig mit der Konsole spielen. Deinen vorgeschlagenen Termrechner kannst du da ja auch umsetzen. Sinnvoll ist das aber nicht da solche Projekte viel zu overkill für einen Anfänger sind.
Ich würde dir einfach zu einem Spiel raten und gut ist. SFML2 ist gut dokumentiert, es gibt gute Tutorials im Internet und wenn du mit etwas einfachem anfängst wie einem Pong-Klon dann klappt das bestimmt auch.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

3

07.11.2016, 16:34

Randfrage: möchtest du dann dein 2D Spiel mit - sagen wir Qt - programmieren? Wenn ja, dann würde ich davon abraten, wenn nein, wieso dann damit anfangen wenn dein Ziel ein anderes ist?

4

08.11.2016, 16:41

Naja, ich war mit den GUI Systemen nich überfordert, ich habe sie nur nicht installiert bekommen. Ich suche nur eine Möglichkeit Buttons, Textboxen, etc zu zeichnen. Wie gesagt würde ich gerne U++ benutzen, aber auf der Website steht nur, wie man U++ mit der mitgelieferten IDE benutzt (welche von Haus aus mit U++ installiert kommt). SFML benutze ich schon, finde ich eine extrem gute Bibliothek, ich suche jetzt aber etwas, um Grafische Oberflächen zu zeichnen, ohne mir widget Klassen in SFML selber zu schreiben. Ein Spiel will ich auf diese Weise natürlich nicht machen ;)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

08.11.2016, 17:06

SFML benutze ich schon, finde ich eine extrem gute Bibliothek, ich suche jetzt aber etwas, um Grafische Oberflächen zu zeichnen, ohne mir widget Klassen in SFML selber zu schreiben.

Für GUI in SFML gibt es zum Beispiel SFGUI. Solange du aber wirklich eine GUI Anwendung entwickeln willst ist ein richtiges GUI FRamework natürlich sinnvoller.
Ein Vorschlag. Schreib doch mal welche IDE du zum entwickeln nimmst und dann schreib mal was du versucht hast um das ganze zum laufen zu bringen und welche konkreten Probleme dabei aufgetreten sind. So können wir jetzt ja nur raten was dein eigentliches Problem bei U++ war. Mit etwas mehr Informationen können wir dir dann sicherlich helfen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

6

08.11.2016, 17:43

Nun ja, da ich Ubuntu benutze fällt VS natürlich weg, deshalb benutze ich QT Creator(ich weiss, das klingt ziemlich dumm, aber ich komme mit dem Programm sehr gut zurecht und es funktioniert auch ohne QT gut). Generell Verstehe ich den linker nicht wirklich(manchmal lassen sich sfml Programme compilieren, manchmal nicht. Z.B. kann ich SFML weder unter Win noch unter Linux statisch linken, ohne Fehler zu bekommen. Jetzt gerade wird das Programm nicht ausgeführt, weil es eine *.so Datei nicht findet, obwohl ich es im Explorer, im selben Ordner der SO Dateien, ausführe. Ein gutes Tutorial zu dieser Komponente wäre auch hilfreich :D Bei U++ muss man eigentlich nur ein zip runterladen. Darin sind die IDE und die Bibliotheken. In der IDE kann man dann einfach ein Bsp Programm öffnen und ohne Probleme compilieren. Eine richtige Installation habe ich nicht gefunden. Zudem gibt es keinen Lib oder include Ordner im zip.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

08.11.2016, 17:54

Hmm, das scheint etwas aufwendiger zu sein. Guck mal hier. Vielleicht hilft das schon mal weiter.
Was dein anderes Problem angeht, .so Dateien sind shared object files. Für statisch gelinkte Versionen brauchst du die .a Dateien. Wie du das ganze zum laufen bringst sollte auf der SFML Seite eigentlich gut erklärt sein. Ohne genaue Fehlermeldung und deine Konfiguration zu kennen kann ich dir da natürlich nicht groß weiter helfen. Hier sind im Prinzip die wichtigen Dinge die du wissen musst. Qt nutzt soweit ich weiß ein eigenes Build-System. Wie das genau aussieht und wie du da Pfade und benötigte .so Dateien angibst kann ich dir so nicht sagen. Da müsstest du dich dann selbst informieren. Interessant finde ich aber dass du Qt aus bestimmten Gründen nicht nutzt, Qt Creator dann aber schon ;) Aber das musst du am Ende natürlich selbst wissen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

8

08.11.2016, 18:11

Wie gesagt SFML bekomme ich nicht statisch gelinkt(bekomme tausende undefined references, habe auch die Bibliotheken mit "-s" gelinkt), deshalb brauche ich ja die SO/DLL Dateien. Ich habe jetzt wie bei Win die .so Dateien in den gleichen Ordner wie das Programm getan(reicht das unter linux?), das Programm findet sie aber nicht:

Quellcode

1
error while loading shared libraries: libsfml-graphics-d.so.2.4: cannot open shared object file: No such file or directory

PS: Habe libsfml-dev nicht installiert.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

9

08.11.2016, 18:21

Wie gesagt SFML bekomme ich nicht statisch gelinkt(bekomme tausende undefined references, habe auch die Bibliotheken mit "-s" gelinkt), deshalb brauche ich ja die SO/DLL Dateien.

Hast du auch das Define SFML_STATIC gesetzt? Habe es zwar lange nicht mehr gemacht, aber damals ging es ziemlich Problemlos mit dem statischen Linken.

Ich habe jetzt wie bei Win die .so Dateien in den gleichen Ordner wie das Programm getan(reicht das unter linux?)

Nein, unter Linux läuft das anders. Die Ordner in denen die Bibliotheken liegen können sind in der /etc/ld.so.conf definiert. Üblicherweise sind das /usr/lib für Libs vom System und /usr/local/lib für Libs die man zusätzlich nutzen möchte. Wenn die Libs in den Ordnern liegen muss "ldconfig" ausgeführt werden, damit die Links und der Cache generiert werden. Erst dann kann der Runtime Linker die Abhängigkeiten auflösen. Was fehlt kann man auch ganz gut mit "ldd executable" nachprüfen.

Edit: Als Alternative ginge auch das Verzeichnis mit der Lib in die Umgebungsvariable LD_LIBRARY_PATH aufzunehmen. Ist aber eher die Quick & Dirty Lösung.

10

10.11.2016, 18:01

Um SFML statisch zu linken musste ich noch einige Abhängigkeiten installieren. Habe jetzt das GUI Framework gtkmm gefunden, sieht ganz gut aus. Ist das zu empfehlen? Habe jetzt gerade das Problem, einen vector mit fstream zu schreiben und zu laden. Dafür öffne ich aber besser einen neuen thread. Vielen Dank erstmal :D

Werbeanzeige