Original link: https://ifmet.cn/posts/c554435b/
Brief Description: Explain the difference between the following signals
- QAbstractButton: ①clicked ② pressed ③ released ④ toggled
 - QToolButton: ① triggered
 - QAction: ① changed ② hovered ③ toggled ④ triggered
 

[TOC]
This article was originally published on ” Xie Zang’s Small Station “, and is reproduced here simultaneously.
outline
Signal difference of QAbstractButton / QToolButton / QAction
| kind | Signal | 
|---|---|
| QAbstractButton | void clicked(bool checked = false) | 
| QAbstractButton | void pressed() | 
| QAbstractButton | void released() | 
| QAbstractButton | void toggled(bool checked ) | 
| QToolButton | void triggered(QAction * action ) | 
| QAction | void changed() | 
| QAction | void hovered() | 
| QAction | void toggled(bool checked) | 
| QAction | void triggered(bool checked = false) | 
Four signals of QAbstractButton
- 
clicked(bool checked ): Fired when the mouse is released . It will not fire if the mouse is dragged outside the button area and released. The corresponding function is *mouseReleaseEvent()*. In general, this signal is used in the connect slot function.
 - 
pressed(): emits a signal when the mouse is pressed . Corresponding to mousePressEvent()
 - 
released(): When the mouse is released , a signal is emitted. Fires even if the mouse is dragged outside the button area and released. Corresponding to mouseReleaseEvent()
 - 
toggled(bool checked ): Set the setCheckable(true) and then click the button to trigger the signal
 
Normally when a button is clicked, the response sequence is: pressed() — about 215ms — released() — almost 0ms — *clicked()*.
A signal of QToolButton
- triggered(QAction * action ): emit a signal when the given QAction is triggered
 
Four Signals of QAction
- changed(): emit a signal when the action changes
 - hovered(): This signal will be triggered as soon as the cursor moves to the range of the item and is overlaid on it.
 -  toggled(bool checked): Set checkable(true) and then click the button to trigger this signal.
-  eg: When the checkable is modified (check ☑, or uncheck ⬜), this signal will be triggered. This signal is also triggered when the function 
setChecked()is used. - The actual measurement is to add QAction to the menu of QSystemTrayIcon; use this toggled signal, but the corresponding slot function will not be triggered? Strange. Triggered has been used instead of completion.
 
 -  eg: When the checkable is modified (check ☑, or uncheck ⬜), this signal will be triggered. This signal is also triggered when the function 
 -  triggered(bool checked): Clicking the menu bar, toolbar button, or shortcut key of action can trigger this signal. But if functions like 
setChecked(),toggle()are called, it will not fire. 
Serial address
 Welcome to star ⭐ and fork ? this series of C++ / QT / DTK learning, with a list of learning from shallow to deep.
 This article is reproduced from: https://ifmet.cn/posts/c554435b/
 This site is for inclusion only, and the copyright belongs to the original author.