Movatterモバイル変換


[0]ホーム

URL:


We bake cookies in your browser for a better experience. Using this site means that you consent.Read More

Menu

Qt Documentation

QSignalSpy Class

TheQSignalSpy class enables introspection of signal emission.More...

Header:#include <QSignalSpy>
Inherits:QObject andQList<QList<QVariant> >

Public Functions

QSignalSpy(QObject * object, const char * signal)
boolisValid() const
QByteArraysignal() const
  • 29 public functions inherited fromQObject
  • 68 public functions inherited fromQList

Additional Inherited Members

  • 1 property inherited fromQObject
  • 1 public slot inherited fromQObject
  • 1 signal inherited fromQObject
  • 7 static public members inherited fromQObject
  • 3 static public members inherited fromQList
  • 8 protected functions inherited fromQObject

Detailed Description

TheQSignalSpy class enables introspection of signal emission.

QSignalSpy can connect to any signal of any object and records its emission.QSignalSpy itself is a list ofQVariant lists. Each emission of the signal will append one item to the list, containing the arguments of the signal.

The following example records all signal emissions for theclicked() signal of aQCheckBox:

QCheckBox*box=...;QSignalSpy spy(box, SIGNAL(clicked(bool)));// do something that triggers the signalbox->animateClick();QCOMPARE(spy.count(),1);// make sure the signal was emitted exactly one timeQList<QVariant> arguments= spy.takeFirst();// take the first signalQVERIFY(arguments.at(0).toBool()==true);// verify the first argument

spy.takeFirst() returns the arguments for the first emitted signal, as a list ofQVariant objects. Theclicked() signal has a single bool argument, which is stored as the first entry in the list of arguments.

The example below catches a signal from a custom object:

QSignalSpy spy(myCustomObject, SIGNAL(mySignal(int,QString,double)));myCustomObject->doSomething();// trigger emission of the signalQList<QVariant> arguments= spy.takeFirst();QVERIFY(arguments.at(0).type()==QVariant::Int);QVERIFY(arguments.at(1).type()==QVariant::QString);QVERIFY(arguments.at(2).type()==QVariant::double);

Note: Non-standard data types need to be registered, using theqRegisterMetaType() function, before you can create aQSignalSpy. For example:

qRegisterMetaType<QModelIndex>("QModelIndex");QSignalSpy spy(&model, SIGNAL(whatever(QModelIndex)));

To retrieve theQModelIndex, you can useqvariant_cast:

// get the first argument from the first received signal:QModelIndex result= qvariant_cast<QModelIndex>(spy.at(0).at(0));

Member Function Documentation

QSignalSpy::QSignalSpy(QObject * object, constchar * signal)

Constructs a newQSignalSpy that listens for emissions of thesignal from theQObjectobject. Neithersignal norobject can be null.

Example:

QSignalSpy spy(myPushButton, SIGNAL(clicked(bool)));

bool QSignalSpy::isValid() const

Returns true if the signal spy listens to a valid signal, otherwise false.

QByteArray QSignalSpy::signal() const

Returns the normalized signal the spy is currently listening to.

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of theGNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.


[8]ページ先頭

©2009-2025 Movatter.jp