wxWidgets Tutorial Part I: Einführung in wxWidgets



  • Freak_Coder schrieb:

    Ok ...
    Noch ne Frage:

    1.) Wie läuft das intern ab, wie ist das implementiert das wxWidgets ohne eine main()-Funktion auskommt und in OnInit() anfängt ???

    Makromagie 😉

    @phlox81 ich hatte dir doch gesagt das du das schreiben sollst 😉 Hast wohl vergessen 🙂

    BR
    Vinzenz



  • kynarion schrieb:

    Jupp, lesenswert. Ich hab auch noch ne Frage:

    #if wxUSE_MENUS
    #if wxUSE_STATUSBAR
    ...
    

    Wozu sind diese Abfragen? Wenn ein OS z.B. keinen Statusbar darstellen kann, dann wird das doch automatisch ignoriert, oder?

    Genau dafür ist das da. Man kann diese Flags aber auch selber definieren, so das man diverse Einstellungen in wxWidgets vornehmen kann.



  • Das Buch "Cross-Platform GUI Programming with wxWidgets" gibt es kostenlos und legal zum Download als PDF.

    http://www.phptr.com/content/images/0131473816/downloads/0131473816_book.pdf



  • Hallo,

    ich habe dieses Programm Versuch in Code::Blocks zu starten leider funktioniert es nicht! Ich kriege SEHR viele Errors heraus!
    Woran kann es liegen!

    Ich habe die WX Libary in Projekt-> Build Options -> Costum variables -> add den Link zu der Bibleothek $(link) eingegeben.

    Es kommen trotzdem vielle Fehler!

    Gruss Stefan



  • yo sieht bei mir ähnlich aus:

    Linker-Vorgang läuft...
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free bereits in LIBCD.lib(dbgheap.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _exit bereits in LIBCD.lib(crt0dat.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc bereits in LIBCD.lib(dbgheap.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _realloc bereits in LIBCD.lib(dbgheap.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _memmove bereits in LIBCD.lib(memmove.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _tolower bereits in LIBCD.lib(tolower.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __vsnprintf bereits in LIBCD.lib(vsnprint.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _calloc bereits in LIBCD.lib(dbgheap.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strncpy bereits in LIBCD.lib(strncpy.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _abort bereits in LIBCD.lib(abort.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __snprintf bereits in LIBCD.lib(snprintf.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fflush bereits in LIBCD.lib(fflush.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sprintf bereits in LIBCD.lib(sprintf.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __close bereits in LIBCD.lib(close.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __write bereits in LIBCD.lib(write.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __commit bereits in LIBCD.lib(commit.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __get_osfhandle bereits in LIBCD.lib(osfinfo.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __CrtSetDbgFlag bereits in LIBCD.lib(dbgheap.obj) definiert
    MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose bereits in LIBCD.lib(fclose.obj) definiert
    LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
    wxmsw26d_core.lib(app.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__InitCommonControls@0
    wxmsw26d_core.lib(window.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp___TrackMouseEvent@4
    wxmsw26d_core.lib(statbr95.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__CreateStatusWindowA@16
    wxmsw26d_core.lib(spinbutt.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__CreateUpDownControl@48
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Create@20
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Destroy@4
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_GetImageCount@4
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_GetIconSize@12
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Add@12
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_AddMasked@12
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_ReplaceIcon@12
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Replace@16
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Remove@8
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_Draw@24
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_SetBkColor@8
    wxmsw26d_core.lib(imaglist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__ImageList_GetIcon@12
    wxmsw26d_core.lib(uuid.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__UuidToStringA@8
    wxmsw26d_core.lib(uuid.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__RpcStringFreeA@4
    wxmsw26d_core.lib(uuid.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__UuidCreate@4
    wxmsw26d_core.lib(uuid.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__UuidFromStringA@8
    Debug/moinse.exe : fatal error LNK1120: 20 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    tester.exe - 40 Fehler, 1 Warnung(en)



  • is es auch für Linux?

    mfg
    owner



  • Owner schrieb:

    is es auch für Linux?

    mfg
    owner

    wxGTK läuft natürlich auch unter Linux.
    Steht auch in Absatz 2.1



  • Guten Morgen,

    ich versuche mich auch gerade in C++ (wegen dem Studium) und habe von wxWidgets gehört. Ich nutze den DevC++ und habe versucht eine "HelloWorld" Tutorial einzugeben. Es scheitert aber schon am

    #include "wx/wx.h"
    

    Ich habe leider noch keine Anleitung gefunden, wie und wo ich im Compiler die Verzeichnisse richtig einstelle. Kann mir da vielleicht jemand weiter helfen?

    Vielen Dank im voraus

    lg Baseball



  • Wenn es richtig eingerichtet ist, muß die Zeile

    #include <wx/wx.h>
    

    heißen.
    Und schmeiß DevCpp weg!!!!!!!!!!!!!!!!!!!! Es ist veraltet und wird nicht weiter entwickelt. Man, ladet euch doch mal aktuelle Entwicklungswerkzeuge runter! Z.B. VisualC++2005 Express plus PSDK.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html Dann kannst du dich auch hier nach dem Artikel richten und wxPack downloaden, das richtet dir dann alles ein.



  • Gibt es das erwähnte eBook aus einem der vorangegangenen Beiträge noch?
    Wenn das jemand noch hat und uppen würde, das wäre nett.
    Der alte Link ist nämlich tot.

    *** EDIT ***
    Es gibt das erwähnte eBook aus einem der vorangegangenen Beiträge noch!
    Wenn das jemand noch hat und uppen würde, das wäre unnötig.
    Der alte Link ist nämlich i.O.



  • Der alte Link ist nämlich tot.

    Nööööö.





  • Hallo,

    habs gerade auf meinem EeePC900A unter Ubuntu 8.04 mit g++ 4.2.4 und wx2.8
    kompiliert und musste dafuer folgende zwei Zeilen in der main.cpp in Schoenschrift verfassen.

    main.cpp:83

    txtctrl = new wxTextCtrl(this,-1,wxString((wxChar*)(""), size_t(0)),wxDefaultPosition,wxDefaultSize,wxTE_MULTILINE);
    

    main.cpp:130

    txtctrl->AppendText(dlg.GetValue() + wxString( (wxChar*)("\n"), size_t(1)) );
    

    Danach hat er es erst durchkompiliert und es lief.
    btw; Schoener Artikel und gutes Beispiel, Danke 🙂

    graetz 😃



  • Von Artchi

    Wenn es richtig eingerichtet ist, muß die Zeile

    #include <wx/wx.h>
    

    heißen.
    Und schmeiß DevCpp weg!!!!!!!!!!!!!!!!!!!! Es ist veraltet und wird nicht weiter entwickelt. Man, ladet euch doch mal aktuelle Entwicklungswerkzeuge runter! Z.B. VisualC++2005 Express plus PSDK.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html Dann kannst du dich auch hier nach dem Artikel richten und wxPack downloaden, das richtet dir dann alles ein.

    Ich glaub ich greif auch wieder zu DevC++ zurück weil es keine vrnüptigen anleitungen oder so was gibt wie man das in Code::Blocks einfügen kann...



  • Musst du halt mal selber suchen, bist ja nicht der erste der C::B für wx nutzt.
    Eigentlich musst du nur die richtigen Pfade setzen, dann klappts auch.
    Ansonsten musste halt mal im Compiler/IDE Forum nachfragen.
    Oder unter forums.codeblocks.org



  • http://wiki.wxwidgets.org/CodeBlocks_Setup_Guide
    http://www.speakingx.com/blog/2008/04/24/codeblocks-wxwidgets-setup
    http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.6.1_to_develop_Code::Blocks_(MSW)

    Ich weiß wirklich nicht wo das problem liegt? Es dauert nur paar sekunden wxWidgets mit Code::Blocks einzustellen. Ist ja in jeder IDE das selbe, include/lib dir zu wx ordner einstellen und fertig.



  • Also wenn was in C::B nicht funktioniert, müsste es eigentlich an der wxWidgets-Kompilierung liegen, also warum nicht wxPack herunterladen?



  • Hallo,

    Hab mal ne kurze Frage, leider konnte ich aus Google und der Onlinedokumentation nicht schlau werden und muss nun um Eure Hilfe bitten:

    Wie kann ich den Textinhalt eines Buttons editieren?



  • FrageWxWidgets schrieb:

    Wie kann ich den Textinhalt eines Buttons editieren?

    Mit wxButton::SetLabel()
    Hier der Link zur offiziellen wxWidgets-Doku: http://docs.wxwidgets.org/stable/


Anmelden zum Antworten