Qt Reference Documentation

- Qt 4.8
- ALL VERSIONS

- A
- A
- A
- Print

# Q3Signal Class Reference

The Q3Signal class can be used to send signals for classes that don't inherit QObject. More...

     #include <Q3Signal>

This class is part of the Qt 3 support library. It is provided to keep old source code working. We strongly advise against using it in new code. See Porting to Qt 4 for more information.

Inherits: QObject.

- List of all members, including inherited members
- Obsolete members

## Public Functions

| Q3Signal ( QObject * parent = 0, const char * name = 0 )
| ~Q3Signal ()
void | activate ()
bool | connect ( const QObject * receiver, const char * member )
bool | disconnect ( const QObject * receiver, const char * member = 0 )
void | setValue ( const QVariant & value )
QVariant | value () const

- 29 public functions inherited from QObject

### Additional Inherited Members

- 1 property inherited from QObject
- 1 public slot inherited from QObject
- 1 signal inherited from QObject
- 7 static public members inherited from QObject
- 8 protected functions inherited from QObject

## Detailed Description

The Q3Signal class can be used to send signals for classes that don't inherit QObject.

If you want to send signals from a class that does not inherit QObject, you can create an internal Q3Signal object to emit the signal. You must also provide a function that connects the signal to an outside object slot. This is how we used to implement signals in Qt 3's QMenuData class, which was not a QObject. In Qt 4, menus contain actions, which are QObjects.

In general, we recommend inheriting QObject instead. QObject provides much more functionality.

You can set a single QVariant parameter for the signal with setValue().

Note that QObject is a private base class of Q3Signal, i.e. you cannot call any QObject member functions from a Q3Signal object.

Example:

     #include <q3signal.h>

     class MyClass
     {
     public:
         MyClass();
         ~MyClass();

         void doSomething();

         void connect(QObject *receiver, const char *member);

     private:
         Q3Signal *sig;
     };

     MyClass::MyClass()
     {
         sig = new Q3Signal;
     }

     MyClass::~MyClass()
     {
         delete sig;
     }

     void MyClass::doSomething()
     {
         // ... does something
         sig->activate(); // emits the signal
     }

     void MyClass::connect(QObject *receiver, const char *member)
     {
         sig->connect(receiver, member);
     }

## Member Function Documentation

### Q3Signal::Q3Signal ( QObject * parent = 0, const char * name = 0 )

Constructs a signal object called name, with the parent object parent. These arguments are passed directly to QObject.

### Q3Signal::~Q3Signal ()

Destroys the signal. All connections are removed, as is the case with all QObjects.

### void Q3Signal::activate ()

Emits the signal. If the platform supports QVariant and a parameter has been set with setValue(), this value is passed in the signal.

### bool Q3Signal::connect ( const QObject * receiver, const char * member )

Connects the signal to member in object receiver. Returns true if the connection is successful.

See also disconnect() and QObject::connect().

### bool Q3Signal::disconnect ( const QObject * receiver, const char * member = 0 )

Disonnects the signal from member in object receiver. Returns true if the connection existed and the disconnect was successful.

See also connect() and QObject::disconnect().

### void Q3Signal::setValue ( const QVariant & value )

Sets the signal's parameter to value

See also value().

### QVariant Q3Signal::value () const

Returns the signal's parameter

See also setValue().