Chapter 17. Advanced Signals and Slots
In this chapter, we’ll cover more topics concerning signals and slots. In the first section, we’ll look at additional methods of connecting signals to slots, and afterwards we will show you some useful tricks to help you get even more out of signals and slots. We also cover actions here that are not the same as signals and slots, but serve the same purpose, such as connecting user interaction to program functionality.
Signals and Slots Revisited
You have already learned the basics about signals and slots in Chapter 2, but there are a few things we haven’t told you yet. You probably won’t need this information very often, but it can come in handy from time to time.
First, you do not need to use the static method
QObject::connect()
when
you are in a method of a class derived from QObject
(which
is usually the case when you program with Qt). So, instead of writing:
QObject::connect( myslider, SIGNAL( valueChanged( int ) ), mylcdnum, SLOT( display( int ) ) );
you could write:
connect( myslider, SIGNAL( valueChanged( int ) ), mylcdnum, SLOT( display( int ) ) );
if this code is located in a method of a class derived from QObject
.
Apart from having fewer characters to type, you don’t save
anything here, though.
To save even more typing, you can also leave out the receiver if the code is in a method of the object that is to receive the signal.
For example, you could write the following:
class MyLCDNum : public QLCDNumber { ... } MyLCDNumber::MyLCDNumber( ...
Get Programming with Qt, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.