[wxWidgets] neuer GUI Designer wxGuiBuilder



  • Bisher gibts zwei Möglichkeiten eine wx-GUI zu designen: 1. mit reinem C++ Code, was sehr nervig sein kann. 2. Man kauft sich einen der GUI-Designer die es im Internet gibt.

    Jetzt gibts aber eine dritte interessante Idee: erstelle deine GUI mit ASCII-Design. 😃

    V{
        'Hello wxGuiBuilder World!'
        <hdiv>
    
        'Enter some text!'
        [===================]
    
        H{ ['OK'] ['CANCEL'] }
     }
    

    Dieser ASCII Code ist ein normaler String, der entweder im C++ Sourcecode drin steht oder auch von einer Textdatei kommen kann. Mit der neuen wxGuiBuilder-Klasse wird das ganze geparsed und eine GUI zur Laufzeit generiert. Am Ende kommt das hier raus:
    http://www.xs4all.nl/~jorgb/components/guibuilder/help/gb_3.png

    Das ganze ist nur ein simples Beispiel. Es sind auch komplexere GUIs auf diese Weise möglich.

    wxGuiBuilder ist kostenlos und unterliegt der wxWidgets-Lizenz (also auch für Closedsource-Projekte!). Hier ist die Dokumentation:
    http://www.xs4all.nl/~jorgb/components/guibuilder/help/

    Die offizielle Homepage findet man hier:
    http://wastebucket.solidsteel.nl/cms/

    Ich finde die Idee wirklich nicht schlecht. 👍



  • Wie kriegt man denn ein 'Handle' auf die Steuerelemente??



  • ich weiß nicht, mit sowas komplexere sachen schreiben?

    da kommt mir ein designer doch wesentlich einfacher vor. oder gibts noch vorteile, die ich nicht kenne / sehe?

    mfg aman..



  • .-. schrieb:

    Wie kriegt man denn ein 'Handle' auf die Steuerelemente??

    Zusätzlcih zum Layout kann man noch Tags setzen, um z.B. einen Button kenntlich zu machen:

    ['OK']:ok
    

    Das :ok ist erstmal das Tag oder ID im ASCII-String. Und dann kann man sich das Handle für den Button über die wxGuiBuilder-Instanz holen:

    gb << wxGbButton("ok", &m_okButton, ID_ONCLICKOK);
    

    Danach ganz normal m_okButton nutzen, wie bisherher.



  • aMan schrieb:

    ich weiß nicht, mit sowas komplexere sachen schreiben?

    da kommt mir ein designer doch wesentlich einfacher vor. oder gibts noch vorteile, die ich nicht kenne / sehe?

    Sicherlich gibts einen gewissen Punkt, wo dann ein echter GUI-Editor von Vorteil ist. Da hast du Recht. Aber jemand wie ich, der bisher alles in C++ Code gemacht hat, freut sich halt über sowas, da es eine Erleichterung ist.

    Einen Vorteil ggü. C++ Code oder generierten C++ Code aus einem GUI-Designer ist, das man den ASCII String in eine Textdatei auslagern kann. Hier hätte der User oder auch der Entwickler die Möglichkeit ohne eine Neukompilierung der Anwendung das GUI-Design zu ändern.



  • hm, ich qt gibts diese moeglichkeit glaub ich auch. aber qt ist ja ne andere geschichte..

    aber thx fuer die info..

    mfg aman



  • Ist zwar ne nette Idee aber sowas wird doch niemand ernsthaft benutzen wollen.



  • Es gibt doch noch den kostenlosen wxSmith in den aktuellen Nightly builds von Codeblocks...


  • Mod

    Artchi schrieb:

    aMan schrieb:

    ich weiß nicht, mit sowas komplexere sachen schreiben?

    da kommt mir ein designer doch wesentlich einfacher vor. oder gibts noch vorteile, die ich nicht kenne / sehe?

    Sicherlich gibts einen gewissen Punkt, wo dann ein echter GUI-Editor von Vorteil ist. Da hast du Recht. Aber jemand wie ich, der bisher alles in C++ Code gemacht hat, freut sich halt über sowas, da es eine Erleichterung ist.

    Einen Vorteil ggü. C++ Code oder generierten C++ Code aus einem GUI-Designer ist, das man den ASCII String in eine Textdatei auslagern kann. Hier hätte der User oder auch der Entwickler die Möglichkeit ohne eine Neukompilierung der Anwendung das GUI-Design zu ändern.

    Das Argument ist witzlos, man könnte vielleicht einige Sachen damit ändern,
    aber für nen neuen Button oder ne Erweiterung müsste er dann doch neukompilieren,
    und vorher noch die syntax von wxGuiBuilder korrekt bedienen.
    Zu dem ein normaler User wohl kaum mit der Syntax klar kommen wird, weil
    sie sehr viel aus Abkürzungen besteht, und das Sizer Konzept wohl den meisten
    Nicht Programmierern etwas fremd vorkommen wird.

    Ich persönlich sehs als ne nette Spielerrei an, aber ich mach meine Dialoge etc.
    dann doch lieber fast von Hand. Das geht auch ziemlich schnell, wenn man
    etwas übung drin hat...

    phlox



  • das zur laufzeit aendern ist schon sinnvoll. muss ja nicht unbedingt mit ascii text sein, aber bei opera (zB) kann man fast das komplette ui veraendern. ist sehr praktisch..

    bei anderen programmen waer so ein konzept vielleicht auch sinnvoll. aber fuer die meisten sachen braucht man es nicht, schließlich kann ja der proger bestimmen, wie der user arbeiten soll.. 😉

    mfg aman..


Anmelden zum Antworten