wxWidgets reines C++?



  • altanativ schrieb:

    Was würdet ihr einen "Anfänger" denn anstelle von wxWidgets empfehlen zu lernen?

    QT 😃


  • Administrator

    altanativ schrieb:

    Was würdet ihr einen "Anfänger" denn anstelle von wxWidgets empfehlen zu lernen?

    Im Bereich von GUIs ist das eher schwer. Wirklich was gutes gibt es irgendwie nicht. Es gibt eine Bibliothek, welche aktuell in Entwicklung ist, welche vielleicht etwas werden könnte, aber es steht wohl in den Sternen, wann die fertig sein wird.
    Trotz allen Macken würde ich noch am ehesten zu wxWidgets tendieren. Man ist immerhin vom Kompiler unabhängig, ist Opensource, kann aber für closed Source eingesetzt werden, hat eine grosse Community und dadurch viele Hilfsmittel, bzw. Dokumentationen.
    Allerdings würde ich dem Anfänger empfehlen, dass er zuerst vernünftiges C++ lernen sollte, bevor er sich in so eine Hölle wagt. Bevor man dorthin geht, sollte man wissen, was schlecht ist und was nicht 😉

    GioFX schrieb:

    QT 😃

    Finde da QT nicht unbedingt besser. Der Pre-Preprozessor sagt da wohl schon vieles und ist noch nicht mal alles.

    Grüssli



  • Dravere schrieb:

    Es gibt eine Bibliothek, welche aktuell in Entwicklung ist, welche vielleicht etwas werden könnte, aber es steht wohl in den Sternen, wann die fertig sein wird.

    Na, deine? 😃


  • Administrator

    Badestrand schrieb:

    Dravere schrieb:

    Es gibt eine Bibliothek, welche aktuell in Entwicklung ist, welche vielleicht etwas werden könnte, aber es steht wohl in den Sternen, wann die fertig sein wird.

    Na, deine? 😃

    Ich wollte schon lange mal eine anfangen, kam leider noch nie dazu 🙂
    Nein, ich habe da eigentlich an die von Artchi gedacht. Als ich die mal vor schon etwas längerem angesehen habe, war sie gar nicht mal so schlecht, also gewisses Potential 🙂

    Grüssli



  • Wer oder was ist Artchi?
    Link?
    Für ein gutes Toolkit mit einer freien Lizenz und Plattform Unabhängigkeit kann man sich schon interessieren.


  • Administrator

    IchKaufeEinÜ_üüüü schrieb:

    Wer oder was ist Artchi?

    Ein Mensch mit einem solchen Nickname, der sich hier im Forum rumtreibt.

    IchKaufeEinÜ_üüüü schrieb:

    Link?

    http://algierlib.tigris.org/

    IchKaufeEinÜ_üüüü schrieb:

    Für ein gutes Toolkit mit einer freien Lizenz und Plattform Unabhängigkeit kann man sich schon interessieren.

    Ist derzeit bei Version 0.2, also sehr am Anfang und ich frage mich wie lange es wohl dauern wird, bis es in der Version 1.0 ist 🙂
    Platforumunabhängig ist daher auch derzeit nur geplant. Ist soweit ich weiss noch nichts gemacht, nur vorbereitet.

    Grüssli



  • Danke für den Link.



  • http://algierlib.tigris.org/ schrieb:

    What are the high-level assumptions or ground rules for the project?

    * a clean public ISO-C++-interface, i.e. no macros or compiler specific extensions
    * writing very good user documentation that helps beginners and professionals
    * easy to build and use library
    * Provide compiler independent build scripts (bjam)

    Da kann man fröhlich drüber lachen. Das zu implementieren dürfte ein Kinderspiel sein. Nur holt man sich damit genau die Probleme wieder ins Boot, die mit Makros und den anderen Geschichten verhindert werden sollen. Letztlich eine Zeitverschwendung.



  • Dravere schrieb:

    IchKaufeEinÜ_üüüü schrieb:

    Wer oder was ist Artchi?

    Ein Mensch mit einem solchen Nickname, der sich hier im Forum rumtreibt.

    Meistens schreibt er als Unregistrierter. Die Nicks Hansi Hinterseher und Bulli fallen mir da ein.



  • altanativ schrieb:

    Was würdet ihr einen "Anfänger" denn anstelle von wxWidgets empfehlen zu lernen?

    gtkmm. Das ist schönes "reines" C++. Das einzige was da vielleicht etwas nervt ist, dass es unter Windows recht umständlich einzurichten ist.



  • basti33 schrieb:

    altanativ schrieb:

    Was würdet ihr einen "Anfänger" denn anstelle von wxWidgets empfehlen zu lernen?

    gtkmm. Das ist schönes "reines" C++. Das einzige was da vielleicht etwas nervt ist, dass es unter Windows recht umständlich einzurichten ist.

    Ich mag gtkmm zwar auch, aber "reines" C++ ist das nicht. Eher ein reiner C++-Wrapper um reinen C Code.

    Dravere schrieb:

    ...Jedes wxWidgets Objekt (oder so gut wie jedes) hat automatisch eine Referenzzählung im Hintergrund. Das heisst damit allerdings, dass jedes Objekt auf den Heap muss, wenn man das Ding auf den Stack legt, kracht es gewaltig. Das soll eine "Vereinfachung" sein. Meiner Meinung nach eher für dümmliche Programmierer gedacht, dafür aber jegliche Kontrolle dem eigentlichen Programmierer weggenommen...

    Sowas in der Art macht Qt im Normalfall leider auch. Es baut Parent-Child-Bäume auf, die (ich glaube beim töten von QApplication) beim Beenden automatisch wieder vom Heap genommen werden. Man kann Qt zwar auch irgendwie mit statischen Objekten betreiben, aber der Aufwand dafür ist recht groß.



  • Tachyon schrieb:

    Ich mag gtkmm zwar auch, aber "reines" C++ ist das nicht. Eher ein reiner C++-Wrapper um reinen C Code.

    Okay, das stimmt. Aber ich wollte hier eigentlich das ganze nur aus Sicht eines Anwenders betrachten. Und für die ist es ja reines C++, sprich sie müssen sich nicht mit Makros u.ä. beschäftigen. Dass das intern vllt. doch verwendet wird, braucht sie ja nicht zu kümmern...



  • Tachyon schrieb:

    Sowas in der Art macht Qt im Normalfall leider auch. Es baut Parent-Child-Bäume auf, die (ich glaube beim töten von QApplication) beim Beenden automatisch wieder vom Heap genommen werden. Man kann Qt zwar auch irgendwie mit statischen Objekten betreiben, aber der Aufwand dafür ist recht groß.

    Nur wenn du ein Parent angibst. Übergibst du da NULL (was üblicherweise vorbelegt ist) passiert nix.
    Gelöscht werden diese parent-child-bäume afaik beim löschen des parents. Was in meinen augen auch sinn macht.

    Ich find Qt schon wirklich durchdacht und mMn mit die beste GUI (und vieles andere) -bibliothek die es für c++ gibt.



  • @MasterK
    Was meinst du mir mMn?



  • meiner Meinung nach



  • MasterK schrieb:

    Nur wenn du ein Parent angibst. Übergibst du da NULL (was üblicherweise vorbelegt ist) passiert nix.

    Und wo werden Widgets (z.B.) Buttons angezeigt, wenn sie keinen Parent haben? Duch addWidget, addLayout etc. werden die "geaddeten" Teile automatisch zu Kindern, und das Teil wo hinzugefügt wird automatisch zum Parent.
    Oder was glaubtst Du, wieso man in den meisten Qt-Programmen zu keinem new ein delete sieht?

    Zwei Dinge gefallen mir an Qt ganz gut. Zum einen die Doku, die ist wirklich klasse. Zum anderen das Aussehen der Programme. Mit anderen Toolkits (z.B. gtkmm unter Windows) brauchts relativ viel Gefummel, um das so hinzubekommen.
    Der Rest ist eher mäßig. Schon der olle moc. Oder diese komischen Makros. Signals und Slots kann man auch mit reinem C++ realisieren. Auch der komische Signal-Dispatcher-Code, der aus dem moc heraus kommt ist ziemlich gräuslich.



  • Tachyon schrieb:

    Und wo werden Widgets (z.B.) Buttons angezeigt, wenn sie keinen Parent haben?

    Widgets ohne parents sind automatisch normale fenster.

    Tachyon schrieb:

    Duch addWidget, addLayout etc. werden die "geaddeten" Teile automatisch zu Kindern, und das Teil wo hinzugefügt wird automatisch zum Parent.
    Oder was glaubtst Du, wieso man in den meisten Qt-Programmen zu keinem new ein delete sieht?

    QWidget hat kein addWidget, du gibts wenn schon dann beim erstellen den parent an:

    QButton* button = new QButton(mainWindow)
    

    Und das macht doch auch sinn. Warum sollte ich den button behalten wollen wenn das fenster welches den button enthält gelöscht wird? Im gegenteil, ich fänds extrem unnötig alle child-widgets von hand zu löschen.
    Und das parent-widget kannst du ja wie gehabt von hand löschen wenn du das willst.

    Edit:
    meine aussage zu den parent-child-beziehungen bezog sich btw auf QObject, nicht auf QWidget.


Anmelden zum Antworten