O'Reilly logo

Programming with Qt, 2nd Edition by Matthias Kalle Dalheimer

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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( ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required