Qt - różnica między clicked, toggled, pressed, released

0

jak w temacie.
Czy ktoś wyjaśniłby jaka jest różnica między
clicked, toggled, pressed, released ?

na mój pierwszy rzut oka nie widać różnicy, bo jak się kliknie to według mnie te wszystkie stany występują jednocześnie. Więc po co takie rozbicie na tyle funkcji ?

void clicked(bool checked = false)
void pressed()
void released()
void toggled(bool checked)
0

powiedzmy, że rozumiem. Czy w takim razie toggled jest jakby realizacją na zaznaczenie/odznaczenie programowe ?

2

oczywiście, że jest różnica.
Pamiętaj, że:

  • guzik reaguje nie tylko na myszkę (jak ma focus to spacja/enter też spowoduje clicked/toggled)
  • interakcja guzika z myszką jest dość złożona. Poza prostym kliknięciem, można przytrzymać guzik, można przesunąć kursor trzymając guzik.
  • guzik może reprezentować żądanie akcji lub zmianę stanu czegoś
  • guziki mogą być zgrupowane w radiobuttons (w starych radiach tak się wybierało zakres fal radiowych), wciśniecie jednego guzika może spowodować podniesienie się innych w grupie.
  • guzik może być sprzęgnięty z akcją (QAction), która jest połączona z kilkoma elementami UI (np menu item).
0

dzięki wam za odpowiedzi. Jeszcze jest coś takiego jak focus - no trochę tego jest...

2

focus to jest prosta sprawa. focus wskazuje na widget, który ma pierwszeństwo odbierania zdarzeń klawiatury.
Np naciskając tab albo strzałki można skakać pomiędzy guzikami, polami edycji i innymi eleatami, które przyjmują focus (suwaki, pokrętła, chceckboxy).

1 użytkowników online, w tym zalogowanych: 0, gości: 1