「QObject」の編集履歴(バックアップ)一覧はこちら
「QObject」(2014/08/25 (月) 01:58:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**QObject Class
すべてのQtオブジェクトのベースとなるクラスである。
**公式ページ
[[Object Model>http://qt-project.org/doc/qt-5/object.html]]
[[signals-and-slots>http://qt-project.org/doc/qt-5/signalsandslots.html]]
[[object trees>http://qt-project.org/doc/qt-5/objecttrees.html]]
[[Meta Object Compiler>http://qt-project.org/doc/qt-5/moc.html]]
**備考
**プロパティ
objectName : QString
オブジェクトの名前を取得及び設定する
デフォルト値は空の文字列です。
QString objectName() const
オブジェクト名を取得する
void setObjectName(const QString & name)
オブジェクト名を設定する
void objectNameChanged(const QString & objectName)
オブジェクト名が変更された場合に発行されるシグナル
**非静的メンバ関数
QObject::QObject(QObject * parent = 0)
指定された QObject オブジェクトを親に持つ QObject オブジェクトを作成します。
親のオブジェクトが破棄される場合、すべての子も同時に破棄されます。
parent にNULLを指定すると、親を持たない QObject オブジェクトを作成します。
QObject::~QObject() [virtual]
このオブジェクト及びすべての子オブジェクトを破棄します。
このオブジェクトのシグナルとの接続は自動的に解除されます。
このオブジェクトの未処理のイベントはイベントキューから削除されます。
しかし、直接削除するより deleteLater() を使用するほうがより安全です。
bool QObject::blockSignals(bool block)
block = true の場合は、このオブジェクトによって送出されたシグナルはブロックされます。
つまり、送出したシグナルは接続されたいかなるスロットも呼び出しません。
block = false の場合は、何もブロックしません。
但し、destroyed() シグナルはこのオブジェクトのシグナルをブロックしていても送出されます。
void QObject::childEvent(QChildEvent * event) [virtual protected]
子のイベントを受け取るためにこのイベントハンドラーはサブクラスで再実装できる。
イベントは event パラメーターを通して渡されます。
QEvent::ChildAdded 子が追加されたとき
QEvent::ChildRemoved 子が削除されたとき
QEvent::ChildPolished
const QObjectList & QObject::children() const
子オブジェクトのリストを返します。
QObjectList クラスは QObject* を型に取る QList 型をtypedefしたものです。
typedef QList<QObject*> QObjectList;
リストの順番は追加された順番になっています。
但し、順番は QWidget の子クラスで raise() または lower() した場合は変更されます。
**静的メンバ関数
QMetaObject::Connection QObject::connect(const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection) [static]
シグナルとスロットを接続します。
****パラメータ
-sender シグナルを送出するオブジェクト
-signal シグナル
SIGNAL()マクロを使用しなければならない
-receiver シグナルを受け取るオブジェクト
-method スロット
SLOT()マクロを使用しなければならない
-type 接続する方法
****指定方法
スクロールバーを動かすと、その値をラベルに表示する例
#highlight(linenumber,c){{
QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));}}
****シグナル及びスロットを指定する場合の注意
-必ず SIGNAL() マクロ及び SLOT() マクロで囲います。
#highlight(linenumber,c){{
○QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
×QObject::connect(scrollBar, valueChanged(int), label, setNum(int));}}
-メソッドを指定する部分は引数名を省略します
#highlight(linenumber,c){{
○QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
×QObject::connect(scrollBar, SIGNAL(valueChanged(int value)), label, SLOT(setNum(int value)));}}
こうすることでC++コンパイラに渡される前にQt側で前処理を行い、C++の文法に変換されます。
****複数のシグナルを一つのスロットに接続できます
****一つのシグナルを複数のスロットに接続できます
この場合、接続した順番にスロットが呼ばれていく
****シグナルをシグナルに接続できます
****返り値
接続に関するハンドルを表す QMetaObject::Connection オブジェクトを返します。
このオブジェクトを調べることでシグナルとスロットの接続が上手くいったかどうかがわかります。
QMetaObject::Connection QObject::connect(const QObject * sender, const QMetaMethod & signal, const QObject * receiver, const QMetaMethod & method, Qt::ConnectionType type = Qt::AutoConnection) [static]
QMetaObject::Connection QObject::connect(const QObject * sender, const char * signal, const char * method, Qt::ConnectionType type = Qt::AutoConnection) const
同一オブジェクト内でのシグナルとスロットの接続を行う場合はこの関数を使用する
QMetaObject::Connection QObject::connect(const QObject * sender, PointerToMemberFunction signal, const QObject * receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection) [static]
QMetaObject::Connection QObject::connect(const QObject * sender, PointerToMemberFunction signal, Functor functor) [static]
QMetaObject::Connection QObject::connect(const QObject * sender, PointerToMemberFunction signal, const QObject * context, Functor functor, Qt::ConnectionType type = Qt::AutoConnection) [static]
void QObject::connectNotify(const QMetaMethod & signal) [virtual protected]
このオブジェクトのシグナルに何かが接続されたとき呼ばれます。
void QObject::customEvent(QEvent * event) [virtual protected]
このイベントハンドラーはユーザーが作成したイベントを受け取るためにサブクラスで再実装できます。
void QObject::deleteLater() [slot]
コントロールがイベントループを返した場合、オブジェクトは削除されます
void QObject::destroyed(QObject * obj = 0) [signal]
このシグナルはオブジェクト obj が破棄される前に送出されます。
ブロックすることはできません。
bool QObject::disconnect(const QObject * sender, const char * signal, const QObject * receiver, const char * method) [static]
シグナルとスロットの接続を解除します。
接続解除に成功した場合はtrue、そうでない場合はfalseを返します。
bool QObject::disconnect(const QObject * sender, const QMetaMethod & signal, const QObject * receiver, const QMetaMethod & method) [static]
bool QObject::disconnect(const QMetaObject::Connection & connection) [static]
bool QObject::disconnect(const char * signal = 0, const QObject * receiver = 0, const char * method = 0) const
bool QObject::disconnect(const QObject * receiver, const char * method = 0) const
bool QObject::disconnect(const QObject * sender, PointerToMemberFunction signal, const QObject * receiver, PointerToMemberFunction method) [static]
void QObject::disconnectNotify(const QMetaMethod & signal) [virtual protected]
このオブジェクトのシグナルとの接続がきれた場合呼ばれます
void QObject::dumpObjectInfo()
void QObject::dumpObjectTree()
QList<QByteArray> QObject::dynamicPropertyNames() const
bool QObject::event(QEvent * e) [virtual]
bool QObject::eventFilter(QObject * watched, QEvent * event) [virtual]
T QObject::findChild(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
QList<T> QObject::findChildren(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
QList<T> QObject::findChildren(const QRegExp & regExp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
QList<T> QObject::findChildren(const QRegularExpression & re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
bool QObject::inherits(const char * className) const
void QObject::installEventFilter(QObject * filterObj)
bool QObject::isSignalConnected(const QMetaMethod & signal) const [protected]
bool QObject::isWidgetType() const
bool QObject::isWindowType() const
void QObject::killTimer(int id)
const QMetaObject * QObject::metaObject() const [virtual]
void QObject::moveToThread(QThread * targetThread)
QObject * QObject::parent() const
QVariant QObject::property(const char * name) const
int QObject::receivers(const char * signal) const [protected]
void QObject::removeEventFilter(QObject * obj)
QObject * QObject::sender() const [protected]
int QObject::senderSignalIndex() const [protected]
void QObject::setParent(QObject * parent)
bool QObject::setProperty(const char * name, const QVariant & value)
bool QObject::signalsBlocked() const
int QObject::startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer)
QThread * QObject::thread() const
void QObject::timerEvent(QTimerEvent * event) [virtual protected]
QString QObject::tr(const char * sourceText, const char * disambiguation = 0, int n = -1) [static]
const QMetaObject QObject::staticMetaObject
**QObject Class
Qtオブジェクトモデルのベースとなるクラスである
**公式ページ
-[[Object Model>http://qt-project.org/doc/qt-5/object.html]]
-[[signals-and-slots>http://qt-project.org/doc/qt-5/signalsandslots.html]]
-[[object trees>http://qt-project.org/doc/qt-5/objecttrees.html]]
-[[Meta Object Compiler>http://qt-project.org/doc/qt-5/moc.html]]
**備考
-[[シグナルとスロット]]
-[[QObject イベント関係]]
**プロパティ
objectName : QString
オブジェクトの名前を取得及び設定する
デフォルト値は空の文字列です。
QString objectName() const
オブジェクト名を取得する
void setObjectName(const QString & name)
オブジェクト名を設定する
void objectNameChanged(const QString & objectName)
オブジェクト名が変更された場合に発行されるシグナル
**非静的メンバ関数
***コンストラクタ
QObject::QObject(QObject * parent = 0)
指定された QObject オブジェクトを親に持つ QObject オブジェクトを作成します。
親のオブジェクトが破棄される場合、すべての子も同時に破棄されます。
parent にNULLを指定すると、親を持たない QObject オブジェクトを作成します。
***デストラクタ
QObject::~QObject() [virtual]
このオブジェクト及びすべての子オブジェクトを破棄します。
このオブジェクトのシグナルとの接続は自動的に解除されます。
このオブジェクトの未処理のイベントはイベントキューから削除されます。
しかし、直接削除するより deleteLater() を使用するほうがより安全です。
**メソッド
***オブジェクトの情報を取得する
void QObject::dumpObjectInfo()
このオブジェクトの情報をダンプします。
この関数はデバッグモードの場合のみ機能します。
void QObject::dumpObjectTree()
このオブジェクトが持つツリー構造をダンプします。
この関数はデバッグモードの場合のみ機能します。
QList<QByteArray> QObject::dynamicPropertyNames() const
setProperty() を使用して動的に追加されたすべてのプロパティの名前をリストで返します。
**オブジェクトツリー
T QObject::findChild(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
指定した名前を持つ子をこのオブジェクトのツリーから検索し、型Tにキャストして返します。
見つからない場合は0を返します。
名前を指定しない場合はすべてのオブジェクトにマッチします。
2個以上の子がマッチした場合、最もこのオブジェクトから浅い位置にあるオブジェクトを返します。
それらが同じ深さの場合は、どのオブジェクトが返されるかは未定義です。
QList<T> QObject::findChildren(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
指定した名前を持つ子をこのオブジェクトのツリーから検索し、マッチしたオブジェクトを型Tにキャストしてリストで返します。
見つからない場合は空の QList<T> オブジェクトを返します。
名前を指定しない場合はすべてのオブジェクトにマッチします。
QList<T> QObject::findChildren(const QRegExp & regExp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
正規表現で指定した名前を持つ子をこのオブジェクトのツリーから検索し、マッチしたオブジェクトを型Tにキャストしてリストで返します。
見つからない場合は空の QList<T> オブジェクトを返します。
QList<T> QObject::findChildren(const QRegularExpression & re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
正規表現で指定した名前を持つ子をこのオブジェクトのツリーから検索し、マッチしたオブジェクトを型Tにキャストしてリストで返します。
見つからない場合は空の QList<T> オブジェクトを返します。
const QObjectList & QObject::children() const
子オブジェクトのリストを返します。
QObjectList クラスは QObject* を型に取る QList 型をtypedefしたものです。
typedef QList<QObject*> QObjectList;
リストの順番は追加された順番になっています。
但し、順番は QWidget の子クラスで raise() または lower() した場合は変更されます。
bool QObject::inherits(const char * className) const
指定した名前のクラスを継承している場合はtrue、そうでない場合はfalseを返します。
自身のクラス名でもtrueを返します。
オブジェクトがあるクラスのインスタンスかどうかを調べるにはqobject_cast<Type *>(object)を使用してください
bool QObject::isWidgetType() const
このオブジェクトがQWidget クラスを継承している場合はtrue、そうでない場合はfalseを返します。
inherits("QWidget") と同じです。
bool QObject::isWindowType() const
このオブジェクトがQWindow クラスを継承している場合はtrue、そうでない場合はfalseを返します。
inherits("QWindow") と同じです。
QObject * QObject::parent() const
親のオブジェクトに対するポインタを返します
void QObject::setParent(QObject * parent)
親のオブジェクトを設定します
**メタオブジェクト
const QMetaObject * QObject::metaObject() const [virtual]
QObject クラスを継承しているクラスに関する情報を含むメタオブジェクトを返します。
const QMetaObject QObject::staticMetaObject
クラスに関するメタオブジェクトの変数を持っています
QString QObject::tr(const char * sourceText, const char * disambiguation = 0, int n = -1) [static]
指定した文字列の翻訳された文字列を返します。
同じ文字列でも場合によって異なる意味で使用されている場合はそれを区別するために追加の文字列を指定します。
QVariant QObject::property(const char * name) const
指定した名前のプロパティの値を返します。
そのような名前のプロパティが存在しない場合は、返される値は無効です。
利用可能なすべてのプロパティに関する情報は metaObject()及び dynamicPropertyNames() によって取得できます
bool QObject::setProperty(const char * name, const QVariant & value)
指定した名前のプロパティに値を設定します。
プロパティがQ_PROPERTYマクロを使用して定義されていて成功した場合はtrue、そうでない場合はfalseを返します。
Q_PROPERTYマクロを使用して定義されておらず、メタオブジェクトにリストされていない場合、動的プロパティに追加してfalseを返します。
プロパティを削除する場合は無効なQVariantを指定してください。
動的なプロパティは_q_で始まります。
QThread * QObject::thread() const
void QObject::moveToThread(QThread * targetThread)