Wxwidgets- mouse events

Cum functioneaza mouse event-urile din wxwidgets. Am cautat pe site-ul lor,in documentatie,dar nu am gasit niciun exemplu.
Am de ex aceast event:EVT_LEFT_UP
Cum ar trebui sa il folosesc?adica unde sa il scriu ca sa functioneze?
de ex aici:

void MiniSoftwareFrame::OnButton1Click4(wxCommandEvent& event) {
}

Daca elementul Button1 este apasat atunci se executa anumite instructiuni.Cum as putea face acelasi lucru cand de ex trec cu mouse-ul peste acel element?(mouse over)
Am folosit un timp jquery dar nu prea mi-a placut web front end asa ca am trebuie pe c++,aici pare mai complicat…

Trebuie da creezi acel eveninent
in Jquery deja existe
@serghei sper ca nu zic prostii :smiley:

Cum mai exact as face acest lucru?

Indeed @serghei e specialistul in C++

1 Like

cred ca ar trebui sa cauti cum faci un eveniment custom

https://forums.wxwidgets.org/viewtopic.php?t=40327
am stere link ul cu wiki ca nu era nimic acolo

daca observi, metoda ta primeste un eveniment ca parametru

Trebuie declarat fiecare eveniment de genul?
Exista vreo lista cu toate declaratiile gata facute?Poate cineva care foloseste mult c++ daca stie…

Trebuie sa stii ceva c++

Handling-ul evenimentelor la wxWidgets e un subiect complicat, daca vrei sa-l înţelegi pe bune. Aici nu e vorba de C++ ci de modul specific in care wxWidgets face bridge intre obiecte (butoane, campuri de editare etc) si functiile care captureaza evenimentele “emise” de acele obiecte.

http://docs.wxwidgets.org/3.0/overview_events.html

Din pacate nu folosesc wxWidgets, asa ca nu pot sa vin cu exemple concrete. Din câte ştiu, wxWidgets foloseşte “table events” asemănătoare cu cele din MFC. Mai nou, am observat ca au bagat şi “dynamic event handling”, care permite evitarea acelor declaratii foarte complicate specifice tabelelor de handling.

Dacă abia înveţi C++, Qt cred că este o alegere mult mai bună, aici e mult mai simpla conectarea unui object la o functie de handling, de genul asta:

connect(my_button, SIGNAL(click()), SLOT(do_something()));

3 Likes

E free pentru proiecte open source:

Qt Creator e un IDE, ca code blocks, dar e cel mai smecher de C++.

2 Likes

Si nu pot folosi de la el doar partea asta de creare de widget-uri(ex:butoane,fields etc),trebuie neaparat sa folosesc tot IDE-ul?

Şi are si un GUI builder integrat.

Poţi să foloseşti ce vrei, dar nu prea are sens. Qt Creator e cel mai bun IDE pe care il cunosc. Ce-i drept, nici nu am folosit altele la modul profesional, aşa ca e posibil să mă inşel :slight_smile:

La modul serios, ca sa faci programare in Qt fara Qt Creator ar putea fi destul de… complicat. Qt Creator face nişte chestii relativ complexe in spate (stie sa proceseze XML-urile care reprezinta interfetele grafice, înţelege sintaxa keyword-urilor speciale pentru Qt etc).

3 Likes

Pe partea de GUI eu folosesc Visual Studio.

Sunt 2 fisiere anume:

  • Fisierul designer unde ai doar codul care genereaza interfata grafica
  • Un fisier cu nume Form1.cs(poate sa aiba alt nume) unde ai logica programului

Asta ştie layout management? Adica daca bag fonturi foarte mari, aranjarea widget-urilor se va adapta automat, ca la HTML?

Adică ceva de genul ăsta: http://doc.qt.io/qt-5/layout.html

1 Like

Hmmmm
Poti sa te joci cu layout-uri. Eu nu le-am folosit. Poti sa folosesti fonturi de diferite dimensiuni.

Nu am incercat, dar mi-ai dat o tema de gandire

Dezavantajul aplicatiilor facute in Windows Form este ca nu prea sunt “responsive”


Fereastra este maximizata, dar pozitia elemntelor grafice nu se schimba

Daca se doreste ceva mai avansat pe partea de GUI se poate folosi WPF - Windows Presentation Foundation
Ala foloseste XML(XAML) pt interfata grafica

Am înţeles, deci poziţia si dimensiunile widget-urilor sunt fixe. Eu evit astfel de framework-uri, pot da batai de cap daca faci aplicatii folosite de foarte multi clienti, pe sisteme de operare diferite, rezolutii de monitor diferite, dimensiuni de font diferite etc.

1 Like

Aplicatiile dektop facute cu windows forms, wpf, nu sunt cross platform dar experimentalul electron .net este.

1 Like

Cu Qt poti sa dezvolti inclusiv pe mobil. Pt sistemul de operare Blackberry OS 10 puteai sa scrii aplicatii cu Qt si C++

Blackberry OS 10 este un sistem de operare folosit pe blacberry z10, z30 etc

Nota: Ne-am cam dus putin in offtopic :slight_smile:

Mda, nu prea ai ce să faci, discuţiile se duc în mod natural spre chestii conexe :slight_smile:

1 Like

Nu ti-a placut jQuery si acum faci dezvoltare de interfete cu C++ ? Buna gluma.

Majoritatea aplicatiilor realizate in 2017 s-au facut cu Electron sau CEF / WPF integrat in C++/C# ca sa se poata realiza o interfata cu html, css si javascript. (o interfata placuta in special)

Nu vad ce ar fi asa complicat, iti lipseste doar cum sa faci call cand se realizeaza acel event.

http://docs.wxwidgets.org/3.0/overview_events.html

  EVT_BUTTON(BUTTON1, MyFrame::OnButton1)

in event table.

Esti incepator din cate vad, de ce ai ales wxWidgets in loc de Visual Studio cu Windows Forms sau Qt. Toate tutorialele pentru wxwidgets sunt de o calitate foarte joasa. Poti invata doar din codul sursa al altor aplicatii, vezi Audacity, KiCad.

3 Likes

jquery a fost fain dar parca intra prea mult pe partea de design si am vrut sa trec pe c++ deoarece cred ca necesitata mai multa matematica(ceea ce imi place)
de ce am ales wxwidgets?folosesc/foloseam codeblocks si de acolo am aflat de el