QMetaObject

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

QMetaObject

QMetaObjectクラスはQtオブジェクトに関するメタデータを表すクラスです。

取得できる情報一覧

クラス情報

クラス情報は Q_CLASSINFO() マクロを使用して名前と値のペアでソースコード内で設定できます。
QMetaClassInfo
  1. class MyClass : public QObject
  2. {
  3. Q_OBJECT
  4. Q_CLASSINFO("author", "hoge")
  5. Q_CLASSINFO("url", "http://qt-project.org")
  6. public:
  7. ...
  8. };
QMetaClassInfo QMetaObject::classInfo(int index) const
指定したインデックスのクラス情報のメタデータを返します。

int QMetaObject::classInfoCount() const
このクラスのクラス情報の数を返します。

int QMetaObject::classInfoOffset() const
このクラスの最初のクラス情報のインデックスを返します。
その値はクラス情報を持つスーパークラスがない場合は0になります。
そうでない場合はスーパークラスのクラス情報の総数になります。

BaseClass クラス情報なし
┗AClass クラス情報なし
 ┗BClass クラス情報2個
この場合、BClassのクラス情報は
インデックス 内容
0 Bクラスのクラス情報
1 Bクラスのクラス情報

BaseClass 2個
┗AClass 1個
 ┗BClass 2個
この場合、BClassのクラス情報は
インデックス 内容
0 Baseクラスのクラス情報
1 Aクラスのクラス情報
2 Aクラスのクラス情報
0 Bクラスのクラス情報
1 Bクラスのクラス情報

int QMetaObject::indexOfClassInfo(const char * name) const
指定した名前を持つクラス情報を検索し、そのインデックスを返します。
見つからない場合は-1を返します。

クラス名。

const char * QMetaObject::className() const

列挙型


QMetaEnum QMetaObject::enumerator(int index) const
指定したインデックスの列挙型のメタデータを返します。

int QMetaObject::enumeratorCount() const
このクラスの列挙型の数を返します。

int QMetaObject::enumeratorOffset() const
このクラスの最初の列挙型のインデックスを返します。
その値は列挙型を持つスーパークラスがない場合は0になります。
そうでない場合はスーパークラスの列挙型の総数になります。

int QMetaObject::indexOfEnumerator(const char * name) const
指定した名前の列挙型を検索し、そのインデックスを返します。
見つからない場合は-1を返します。

プロパティ


QMetaProperty QMetaObject::property(int index) const
指定したインデックスのプロパティのメタデータを返します。

int QMetaObject::propertyCount() const
このクラスのプロパティ数を返します。

int QMetaObject::propertyOffset() const
このクラスの最初のプロパティのインデックスを返します。
その値はプロパティを持つスーパークラスがない場合は0になります。
そうでない場合はスーパークラスのプロパティの総数になります。

int QMetaObject::indexOfProperty(const char * name) const
指定した名前のプロパティを検索し、そのインデックスを返します。
見つからない場合は-1を返します。

QMetaProperty QMetaObject::userProperty() const
USERフラグがtrueに設定されているユーザーが設定したプロパティを返します。

メソッド名の指定

QByteArray QMetaObject::normalizedSignature(const char * method) [static]
メソッドを表す表記を標準化します。

QByteArray QMetaObject::normalizedType(const char * type) [static]
型を表す表記を標準化します。

コンストラクタ

QMetaMethod QMetaObject::constructor(int index) const
指定したインデックスのコンストラクタのメタデータを返します。

int QMetaObject::constructorCount() const
このクラスのコンストラクタの数を返します。

int QMetaObject::indexOfConstructor(const char * constructor) const
指定したコンストラクタを検索し、そのインデックスを返します。
見つからない場合は-1を返します。

メソッド


QMetaMethod QMetaObject::method(int index) const
指定したインデックスのメソッドのメタデータを返します。

int QMetaObject::methodCount() const
このクラスのメソッド数を返します。

int QMetaObject::methodOffset() const
このクラスの最初のメソッドのインデックスを返します。
その値はメソッドを持つスーパークラスがない場合は0になります。
そうでない場合はスーパークラスのメソッドの総数になります。

int QMetaObject::indexOfMethod(const char * method) const
指定したメソッドを検索し、そのインデックスを返します。
見つからない場合は-1を返します。

シグナルスロット

int QMetaObject::indexOfSignal(const char * signal) const
指定したシグナルを検索し、そのインデックスを返します。
見つからない場合は-1を返します。

int QMetaObject::indexOfSlot(const char * slot) const
指定したスロットを検索し、そのインデックスを返します。
見つからない場合は-1を返します。

void QMetaObject::connectSlotsByName(QObject * object) [static]
再帰的に指定したオブジェクトのすべての子オブジェクトを検索します。
そしてマッチしたシグナルを次の形式に従うオブジェクトのスロットに接続します。
void on_<オブジェクト名>_<シグナル名>(<signal parameters>);

bool QMetaObject::checkConnectArgs(const char * signal, const char * method) [static]
指定したシグナルとメソッドを接続できる場合はtrue、そうでない場合はfalseを返します。

bool QMetaObject::checkConnectArgs(const QMetaMethod & signal, const QMetaMethod & method) [static]
シグナルとメソッドを QMetaObject オブジェクトで指定します。

スーパークラス

const QMetaObject * QMetaObject::superClass() const
スーパークラスのメタ情報を返します。
スーパークラスが存在しない場合は、0を返します。

マクロ

QGenericArgument Q_ARG( Type, const Type & value)
指定した型と値を QGenericArgument オブジェクトで返します。
invokeMethod() で使用します。

QGenericReturnArgument Q_RETURN_ARG( Type, Type & value)
指定した型とconstでない値を QGenericReturnArgument オブジェクトで返します。
invokeMethod() で使用します。

コンストラクタを生成する

QObject * QMetaObject::newInstance(val0...val9) const
このクラスのインスタンスを生成します。
引数に最大10個まで渡すことができます。
引数にマッチするコンストラクタがない場合は0を返します。

メソッドを実行する

bool QMetaObject::invokeMethod(QObject * obj, const char * member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 = QGenericArgument( 0 ), QGenericArgument val1 = QGenericArgument(), QGenericArgument val2 = QGenericArgument(), QGenericArgument val3 = QGenericArgument(), QGenericArgument val4 = QGenericArgument(), QGenericArgument val5 = QGenericArgument(), QGenericArgument val6 = QGenericArgument(), QGenericArgument val7 = QGenericArgument(), QGenericArgument val8 = QGenericArgument(), QGenericArgument val9 = QGenericArgument()) [static]
指定したオブジェクトのメンバー(シグナルまたはスロットを指定)を実行します。
メンバーが実行できた場合はtrueを返します。
指定したメンバーが存在しない場合または引数がマッチしない場合はfalseを返します。
実行はタイプを指定することで同期または非同期にできます。

bool QMetaObject::invokeMethod(QObject * obj, const char * member, QGenericReturnArgument ret, val0...val9)
type = Qt::AutoConnection のバージョン

bool QMetaObject::invokeMethod(QObject * obj, const char * member, QGenericReturnArgument ret, val0...val9) [static]
返り値を受け取らないバージョン

bool QMetaObject::invokeMethod(QObject * obj, const char * member, val0...val9) [static]
返り値を受け取らなず、type = Qt::AutoConnection のバージョン
最終更新:2014年08月25日 13:58