Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako raditi sa dogadjajima kod FLTK klasa i widgeta

[es] :: C/C++ programiranje :: Kako raditi sa dogadjajima kod FLTK klasa i widgeta

[ Pregleda: 4990 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Kako raditi sa dogadjajima kod FLTK klasa i widgeta15.04.2005. u 19:23 - pre 216 meseci
Molim nekog ko zna da mi objasni sto detaljnije kako funkcionise rad dogadjaja u C++ programu koji koristi FLTK klase. Npr. zanima me kako da povezem sa nekim dugmetom dogadjaj na klik levim tasterom... i kako funkcionise handler dogadjaja. I da kako da povezem taj dogadjaj sa nekom metodom ili funkcijom.
Hvala svima unapred....
Naravno korisitm DEV Cpp 4.9.9.2
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta15.04.2005. u 19:32 - pre 216 meseci
Ovo ce paliti kada kliknes gumb:
Code:
void klik(Fl_Widget* object, void* userdata) {
    fl_alert("Kliknuo si gumb");
}

int main() {
    // ...
    
    Fl_Button *gumb = new Fl_Button(10, 10, 100, 25, "Klikni me");
    gumb->callback(klik);
    
    // ...
}
Ako zelis hvatati i druge evente:
Code:
class MojGumb : public Fl_Button {
    // ...
    
    int handle(int event) {
        switch event {
            case FL_PUSH:
                fl_alert("Pritisnuo si me");
            case FL_RELEASE:
                fl_alert("Otpustio si me");
            
            // ...
        }
    }
    
    // ...
};

int main() {
    // ...
    
    MojGumb *gumb = new MojGumb(10, 10, 100, 25, "Klikni me");
    
    // ...
}
Za detaljnije procitaj FLTK dokumentaciju.
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.234.EUnet.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 14:37 - pre 216 meseci
Citao sam dokumentaciju za FLTK ali nisam nasao objasnjenje kako da ovo izvedem.
Da li mozda neko zna odakle mogu da skinem neki drugi tutorial za Fltk, sem zvanicnog?
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 15:58 - pre 216 meseci
Imas onaj pdf.
 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.teol.net.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 18:23 - pre 216 meseci
Citat:
NeznamTkoSam: Imas onaj pdf.

pdf,koliko ja znam postoji samo za FLTK 1.
Bolje potrazi tutorijale za FLTK 2,jer je noviji,a samim tim i bolji!
Zasto se vracati na staro.
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 21:20 - pre 216 meseci
Mislite na pdf sa njihovog sajta (fltk.org)? On je isti kao HTML tutorijal.
Jeste li dokumentacija za fltk2 bolja?
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.beotel.net.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 21:56 - pre 216 meseci
Citat:
rj444: Molim nekog ko zna da mi objasni sto detaljnije kako funkcionise rad dogadjaja u C++ programu koji koristi FLTK klase. Npr. zanima me kako da povezem sa nekim dugmetom dogadjaj na klik levim tasterom... i kako funkcionise handler dogadjaja. I da kako da povezem taj dogadjaj sa nekom metodom ili funkcijom.
Hvala svima unapred....
Naravno korisitm DEV Cpp 4.9.9.2


Kada su dogadjaji u pitanju tu se vrte tri funkcije NeznamThoSam je spomenuo dve :) ono sto nije spomenuo jeste when() :) tj u zavisnosti od eventa koji dogadjaj da bude pozvan.

FLTK je zamisljen da ima samo jedan callback method za svaki widget, i da unutar tog callback metoda obradjujes sve dogadjaje.

Osnova svega jeste Widget::handle metod, znaci kada se dogadjaj desi fltk protrci kroz widgete koji se nalaze u listi widgeta( recimo desio se klik misemm tada se event salje prozoru pa svim mogucim grupama koje se nalaze u kordinati gde je mis, pa tek nakraju dugmetu)

e sada ako handle vrati 0 smatra se da ga ta vrsta eventova ne zanima, i event se salje sledecem na listi sve dok neki widget ne prihvati i obradi event.

Ono sto default handle metod radi jeste da proveri da li se trenutni event nalazi u flagu koji se setuje when metodom i ako se taj dogadjaj nalazi u toj skupini onda poziva funkciju koju je dobio callback metodom.

Citat:
Buffy: pdf,koliko ja znam postoji samo za FLTK 1.
Bolje potrazi tutorijale za FLTK 2,jer je noviji,a samim tim i bolji!
Zasto se vracati na staro.


Dokumentacija za FLTK2 je vecim delom prebacena na doxygen, a doxygen moze pored html-a da generise i tex, a iz tex-a je lako dobiti pdf.

A sto se tice FLTK 2 on jos uvek zvanicno nije dostigao stable fazu, ali je dovoljno stabilan, koristi namespace i native utf8 podrsku. Dok se 1.1.x smatra i dalje za stable.
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.beotel.net.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 21:59 - pre 216 meseci
Citat:
rj444: Mislite na pdf sa njihovog sajta (fltk.org)? On je isti kao HTML tutorijal.
Jeste li dokumentacija za fltk2 bolja?


Dejan Lekic odrzava
www.fltk.net

I tamo imas http://www.fltk.net/files/fltk-doc-reference-chm-2.0.1.zip u chm formatu ili http://www.fltk.net/f2doc/ ako hoces html gde imas pretragu.
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta16.04.2005. u 22:35 - pre 216 meseci
FLTK2 je još uvijek dosta nestabilan...
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.beotel.net.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta17.04.2005. u 09:27 - pre 216 meseci
Citat:
NeznamTkoSam: FLTK2 je još uvijek dosta nestabilan... :(


Mozes li da das neki konkretan primer ? Ja aktivno koristim fltk2 i do sada nisam naisao na neke probleme.
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.129.eunet.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta17.04.2005. u 12:19 - pre 216 meseci
Meni su programi pucali na potpuno nebulozne stvari tipa: nisam definisao font na labeli ili dugmetu… Ubi se tražeći šta nije u redu, jer svaki put dobijem Segmentation fault, i onda slučajno dodam font style i proradi… I slične stvari…
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta17.04.2005. u 19:36 - pre 216 meseci
Problem je klasa Rectangle. :(
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta18.04.2005. u 09:25 - pre 216 meseci
Stjepane (NeZnamTkoSam), nije problem klasa fltk::Rectangle, vec je TVOJ problem sto ne znas da je iskoristis!
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta18.04.2005. u 09:53 - pre 216 meseci
Leka, daj pogledaj http://www.elitesecurity.org/tema/95193-FLTK-crtanje-linije
Procitaj sto si napisao o klasi Rectangle.
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta18.04.2005. u 10:26 - pre 216 meseci
LOL
Koji sam ja idiot!
Leka, nije problem "sto je ne znam iskoristiti" nego to što ja imam staru verziju FLTK dvojke gdje jos nema klase Rectangle
Ali svejedno, i sam si rekao da jos nije za komercijalne programe jer je nestabilan...
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta18.04.2005. u 14:15 - pre 216 meseci
Ljudi hvala Vam na objasnjenjima. Polako ucim kako se radi. Medjutim, citajuci tutorijal sa sajta (sa onog na kom ima i video zapis), pokusao sam da kompajliram sledeci primer:

Code:

#include <FL/Fl.H> 
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Input.H>
#include <FL/Fl_Output.H>
using namespace std;

//---------------------------------------------------
 
class SimpleWindow : public Fl_Window{
 
   public:
      SimpleWindow(int w, int h, const char* title );
      ~SimpleWindow();
      Fl_Button* copy;
      Fl_Button* quit;
      Fl_Input* inp;
      Fl_Output* out;
    
   private:
      static void cb_copy(Fl_Widget*, void*);
      inline void cb_copy_i();
  
      static void cb_quit(Fl_Widget*, void*);
      inline void cb_quit_i();
};

//----------------------------------------------------

int main (){
  
   SimpleWindow win(300,200,"SimpleWindow");
   return Fl::run();
}

//----------------------------------------------------

SimpleWindow::SimpleWindow(int w, int h, const char* title):Fl_Window(w,h,title){
    
   begin();
      copy = new Fl_Button( 10, 150, 70, 30, "C&opy");
      copy->callback( cb_copy, this );
     
      quit = new Fl_Button(100, 150, 70, 30, "&Quit");
      quit->callback(cb_quit, this);
   
      inp = new Fl_Input(50, 50, 140, 30, "Input:");
      out = new Fl_Output(50, 100, 140, 30, "Output:");
   end();
   resizable(this);
   show();
}

//----------------------------------------------------

SimpleWindow::~SimpleWindow(){}

//----------------------------------------------------

void SimpleWindow::cb_copy(Fl_Widget* o, void* v) { 
 
   //SimpleWindow* T=(SimpleWindow*)v;
   //T->cb_copy_i();
    
   // or just the one line below
    ( (SimpleWindow*)v )->cb_copy_i();
}


void SimpleWindow::cb_copy_i() {

   out->value(inp->value());  
}

//----------------------------------------------------

void SimpleWindow::cb_quit(Fl_Widget* , void* v) {

   ( (SimpleWindow*)v )->cb_quit_i();
}


void SimpleWindow::cb_quit_i() {

    hide();
}

//----------------------------------------------------


Tada dobijam sledecu gresku:
Code:

multiple definition of 'typeinfo for Fl_Widget'
first defined here
.
.
.


I tako za sve headere koje sam ukljucio na pocetku koda.
U cemu je problem?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta20.04.2005. u 08:15 - pre 216 meseci
Nadam se da nisi pokusao taj kod da kompajliras sa FLTK 2.0, jer ako jesi onda si silno pogresio - taj kod je FLTK 1.x kod. :)
Kod mene se ovaj kod koji si naveo kompajlira bez greske, sa FLTK 1.x . Evo snimka: http://gnu.nu6.org:8000/ss/snimak134.png .
Dakle, ne pokusavaj da kompajliras to sa FLTK 2.0 . FLTK 2.0 primere imas recimo na http://www.nu6.org/_/src/cpp/ ...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta20.04.2005. u 11:32 - pre 216 meseci
Imam Fltk 1.1.6, koji je instaliran preko DEV Cpp 4.9.9.2 WebUpdate Tool-a i u njemu sam pokusao da ga kompajliram. Da li je to problem? Mozda treba da se kompajlira iz komandne linije.
Takodje mi se ova greska javljala i sa drugim primerima, sto onim koje sam skinuo sa neta, sto onim koje sam sam napisao. Obicno mi se ova greska javlja kada napravim posebnu klasu nekakvog prozora sa widgetima.
Molim Vas pomagajte ljudi, bas mi se dopada rad sa FLTK ali ne mogu da provalim ovu gresku.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta20.04.2005. u 14:34 - pre 216 meseci
Moj predlog je da skines FLTK 1.x (ako vec zelis) sa www.fltk.net . Napomena, treba da skines i libpthread DevPak u tom slucaju.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.44.eunet.yu.



Profil

icon Re: Kako raditi sa dogadjajima kod FLTK klasa i widgeta21.04.2005. u 23:49 - pre 216 meseci
Vec sam skinuo FLTK2 i dokumentaciju za isti. Mogu ti reci da mi se onakve greske vise ne javljaju (da kucnem u drvo), ali cu verovatno nailaziti na jos problema koje cu ovde izneti. Nadam se da cu uz pomoc Vas iskusnih programera i ja nauciti dosta toga. Hvala na savetima, veoma cenim kada ljudi imaju vremena da odgovaraju na pitanja onih kojima treba pomoc.
Pozdrav
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako raditi sa dogadjajima kod FLTK klasa i widgeta

[ Pregleda: 4990 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.