Q3Signal Class

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

头: #include <Q3Signal>
继承: QObject

公共函数

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

额外继承成员

详细描述

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 代替。 QObject provides much more functionality.

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

注意, QObject private base class of Q3Signal , i.e. you cannot call any QObject member functions from a Q3Signal 对象。

范例:

#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);
}
					

成员函数文档编制

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 在对象 receiver . Returns true if the connection is successful.

另请参阅 disconnect () 和 QObject::connect ().

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

Disonnects the signal from member 在对象 receiver . Returns true if the connection existed and the disconnect was successful.

另请参阅 connect () 和 QObject::disconnect ().

void Q3Signal:: setValue (const QVariant & value )

Sets the signal's parameter to value

另请参阅 value ().

QVariant Q3Signal:: value () const

Returns the signal's parameter

另请参阅 setValue ().