qt:signals_and_slots
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
qt:signals_and_slots [2010/12/09 14:45] – [Writing your own signals] mithat | qt:signals_and_slots [2011/04/01 11:09] – mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Signals and slots ====== | ====== Signals and slots ====== | ||
- | Communication between objects in Qt is typically handled by a signal and slots system. Signals are emitted by objects in response to user interaction or other stimuli, and these signals are received by slots in other objects. Connections are made between signals and slots by the programmer using some simple non-C++ code foo. The behavior associated with a received signal is determined programatically. Lots of Qt classes have predefined signals and slots. You can implement new signals and slots in classes you derive yourself. | + | Communication between objects in Qt is typically handled by a signal and slots system. Signals are emitted by objects in response to user interaction or other stimuli, and these signals are received by slots in other objects. Connections are made between signals and slots by the programmer using some Qt macro foo. The behavior associated with a received signal is determined programatically. Lots of Qt classes have predefined signals and slots. You can implement new signals and slots in classes you derive yourself. |
===== Making connections ===== | ===== Making connections ===== | ||
A connection between a signal and a slot is made as follows: | A connection between a signal and a slot is made as follows: | ||
<code cpp-qt> | <code cpp-qt> | ||
- | QObject:: | + | QObject:: |
- | {pointer to receiver}, SLOT({slot-name}({parameter-type(s)}))); | + | <pointer to receiver>, SLOT(<slot-name>(<parameter-type(s)>))); |
</ | </ | ||
- | The emiter emits the signal '' | + | The emiter emits the signal '' |
- | For example:((From Molkentin, p. 37)) | + | Example:((From Molkentin, p. 37)) |
<code cpp-qt> | <code cpp-qt> | ||
QSpinBox* spinBox = new QSpinBox; | QSpinBox* spinBox = new QSpinBox; | ||
Line 24: | Line 24: | ||
The '' | The '' | ||
+ | |||
+ | The number of parameters emited by a signal is allowed to be greater than the number of parameters received by a slot; extra parameters are ignored. | ||
+ | |||
+ | Errors in connecting signals and slots are not reported in compiling or linking. However, they will produce a runtime warning: \\ | ||
+ | \\ | ||
+ | '' | ||
===== Multiple connections ===== | ===== Multiple connections ===== | ||
- | Signals may connect to multiple slots. | + | Signals may connect to multiple slots. |
- | If a signal connects to multiple | + | In the case of multiple |
===== Writing your own slots ===== | ===== Writing your own slots ===== |
qt/signals_and_slots.txt · Last modified: 2011/04/01 11:10 by mithat