Erfahrungen mit FLTK ???



  • Hi!

    Ich hab ein bisschen mit FLTK gemacht. Was möchtest du wissen?

    Vom Design sieht mir FLTK recht schön gemacht aus, außerdem scheint es wesentlich einfacher zu sein als GTK/QT etc.
    Der GUI Designer.. mh, der ist wirklich nicht schlecht. Etwas gewöhnungsbedürftig, aber mit etwas Eingewöhnung kommt man damit auch recht schnell zurecht.
    Leider produziert der Designer .cxx+.h Dateien, so dass man bei jeder kleinen Gui Änderung mal wieder neu compilen muss. Nicht sehr schön.
    Bei mir wurde der Code (neuster GCC) wunderbar compiled.

    Wenn du spezielle Fragen hast, frag. Ich hoffe ich kann sie dir beantworten.



  • momentan hab ich noch keine großsartigen Fragen dazu. Wollte nur mal wissen was so die Erfahrungen damit sind.

    kann man damit ähnlich viel machen wie mit z.B. wxWindows, gtkmm...? oder sind die möglichkeiten eher eingeschränkt?



  • CeNoRiDeR schrieb:

    momentan hab ich noch keine großsartigen Fragen dazu. Wollte nur mal wissen was so die Erfahrungen damit sind.

    kann man damit ähnlich viel machen wie mit z.B. wxWindows, gtkmm...? oder sind die möglichkeiten eher eingeschränkt?

    Eh, ich hab mit wxWindows oder gtkmm noch nicht soviel gemacht, mich hat immer deren Komplexität abgeschreckt. Ich denke jedoch, dass FLTK sehr reif ist, und es durchaus mit einer der GUIS aufnehmen kann.
    Es laufen zZ. sogar Diskussionen den GTK basierten Browser Dillo (www.dillo.org) auf FLTK zu porten. Das ist insofern recht interessant, da ein Browser doch recht hohe Anforderungen an das Window Toolkit stellt.



  • @Headhunter
    ok schonmal danke



  • hi,
    ich wollte mir jetzt auch mal FLTK ansehen und hab den Beispielcode compilieren wollen, doch mein DevCpp meldet immer folgende Linkerfehler:

    ...
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x1615): undefined reference to `DeleteObject@4'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x172c): undefined reference to `CreateRectRgn@16'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x1741): undefined reference to `CombineRgn@16'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x174a): undefined reference to `DeleteObject@4'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x1776): undefined reference to `CreateRectRgn@16'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x178d): undefined reference to `DeleteObject@4'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl.o)(.text+0x721): undefined reference to `GdiFlush@0'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0x590): undefined reference to `select@20'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0x5e2): undefined reference to `__WSAFDIsSet@8'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0x5fc): undefined reference to `__WSAFDIsSet@8'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0x614): undefined reference to `__WSAFDIsSet@8'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0x725): undefined reference to `select@20'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0xe83): undefined reference to `CreateRectRgn@16'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0xf0c): undefined reference to `CombineRgn@16'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0xf15): undefined reference to `DeleteObject@4'
    D:/Programme/Dev-Cpp/lib/libfltk.a(Fl_x.o)(.text+0xf2d): undefined reference to `CreateRectRgn@16'
    ...
    

    Kann mir einer sagen, welche Lib ich da noch einbinden muss?

    Tschau Gartenzwerg



  • @Gartenzwerk
    ich habe das DevPak für Dev C++ benutzt
    http://prdownloads.sourceforge.net/devpaks/fltk-1.1.4.devpak?download
    das ist aber leider nicht die aktuellste version(2.0 = cvs version) aber zum reinschauen ist es gut...
    (wenn jemand weis wo ich ein aktuelleres Dev Pak herbekomme immer her damit;-) ich blick das nämlich nie wie ich das alles ohne die devpaks machen muss...)

    @Headhunter
    kennst du gute Tutorials in deutsch dafür?



  • Tutorials? Nee, kenne ich keine, aber ich finde FLTK wirklich so einfach, dass ich keine Tutorials gebraucht habe um's mir einigermaßen beizubringen.
    Wenn du den Gui Designer (Fluid) benutzt, sollte der Einstieg noch einfacher sein, da das ganze Gerüst schon steht, du musst also nur die Callbacks selber schreiben.



  • @Headhunter
    ok thx



  • hi,

    @ CeNoRiDeR: Danke für den Link, jetzt funktioniert es.

    Tschau Gartenzwerg



  • @Gartenzwerk
    kein Problem

    @Headhunter
    So jetzt hab ich doch mal ne frage 😉
    ich habe ne Datei:

    #include <FL/Fl.H>
    #include <FL/Fl_Window.H>
    #include <FL/Fl_Box.H>
    #include <FL/Fl_Button.H>
    
    int main (int argc, char ** argv)
    {
      Fl_Window *window;
      Fl_Box *box;
      Fl_Button *button;
    
      window = new Fl_Window (300, 180);
      box = new Fl_Box (20, 40, 260, 100, "Hello World!");
      button = new Fl_Button (10,10,60,60,"Test");
    
      box->box (FL_UP_BOX);
      box->labelsize (36);
      box->labelfont (FL_BOLD+FL_ITALIC);
      box->labeltype (FL_SHADOW_LABEL);
      window->end ();
      window->show (argc, argv);
    
      return(Fl::run());
    }
    

    wie muss ich das jetzt mit den Callbacks machen? kannst du mir das vielleicht mal erklären?



  • Ungetestet alles, müsste aber so klappen:
    Schau dir einfach mal den Code an, den der fluid erzeugt. Da kannst du viel
    drauß ziehen!

    #include <FL/Fl.H> 
    #include <FL/Fl_Window.H> 
    #include <FL/Fl_Box.H> 
    #include <FL/Fl_Button.H> 
    
    void clbButton (Fl_Button* button, void* optParameter)
    {
         Fl_Alert ("hello world");
    }
    
    int main (int argc, char ** argv) 
    { 
      Fl_Window *window; 
      Fl_Box *box; 
      Fl_Button *button; 
    
      window = new Fl_Window (300, 180); 
      box = new Fl_Box (20, 40, 260, 100, "Hello World!"); 
    
      button = new Fl_Button (10,10,60,60,"Test"); 
    /****/
      button>callback((Fl_Callback*)clbButton);
    /****/
    
      box->box (FL_UP_BOX); 
      box->labelsize (36); 
      box->labelfont (FL_BOLD+FL_ITALIC); 
      box->labeltype (FL_SHADOW_LABEL); 
      window->end (); 
      window->show (argc, argv); 
    
      return(Fl::run()); 
    }
    


  • ok danke...ein kleiner fehler war drin;-) Hab das jetzt endlich kapiert...


Anmelden zum Antworten