QMetaAssociation::Iterable Class
class QMetaAssociation::IterableQMetaAssociation::Iterable QVariant における連想コンテナ向けの反復可能インターフェースです。詳細...
このクラスはQt 6.11で導入されました。
パブリック型
(since 6.11) class | ConstIterator |
(since 6.11) class | Iterator |
| BidirectionalConstIterator | |
| BidirectionalIterator | |
| ForwardConstIterator | |
| ForwardIterator | |
| InputConstIterator | |
| InputIterator | |
| RandomAccessConstIterator | |
| RandomAccessIterator |
パブリック関数
| bool | containsKey(const QVariant &key) const |
| QMetaAssociation::Iterable::ConstIterator | find(const QVariant &key) const |
| void | insertKey(const QVariant &key) |
| QMetaAssociation::Iterable::Iterator | mutableFind(const QVariant &key) |
| void | removeKey(const QVariant &key) |
| void | setValue(const QVariant &key, const QVariant &mapped) |
| QVariant | value(const QVariant &key) const |
詳細な説明
このクラスを使用すると、QVariant 内に保持されている連想コンテナの要素に、いくつかの方法でアクセスできます。QMetaAssociation::Iterable のインスタンスは、QVariant から、QVariantHash またはQVariantMap に変換できる場合、あるいはカスタム可変ビューが登録されている場合に抽出できます。
QHash<int,QString>mapping;
mapping.insert(7, "Seven");
mapping.insert(11, "Eleven");
mapping.insert(42, "Forty-two");
QVariant variant=QVariant::fromValue(mapping);
if(variant.canConvert<QVariantHash>()) {
QMetaAssociation::Iterable iterable=variant.value<QMetaAssociation::Iterable>();
// 値に対してC++11のrange-forを使用可能:
for(constQVariant&v: iterable) {
qDebug() << v;
}
// イテレータを使用できます:
QMetaAssociation::Iterable::const_iteratorit=iterable.begin();
constQMetaAssociation::Iterable::const_iteratorend=iterable.end();
for( ; it!=end;++it) {
qDebug() << *it; // The current value
qDebug() << it.key();
qDebug() << it.value();
}
}コンテナ自体は、それを反復処理する前にコピーされることはありません。
QVariantも参照してください 。
メンバ型のドキュメント
[alias] Iterable::BidirectionalConstIterator
std::bidirectional_iterator_tag を使用して const_iterator を公開します。
[alias] Iterable::BidirectionalIterator
std::bidirectional_iterator_tag を使用して、イテレータを公開します。
[alias] Iterable::ForwardConstIterator
std::forward_iterator_tag を使用して const_iterator を公開します。
[alias] Iterable::ForwardIterator
std::forward_iterator_tag を使用してイテレータを公開します。
[alias] Iterable::InputConstIterator
std::input_iterator_tag を使用して const_iterator を公開します。
[alias] Iterable::InputIterator
std::input_iterator_tag を使用してイテレータを公開します。
[alias] Iterable::RandomAccessConstIterator
std::random_access_iterator_tag を使用して const_iterator を公開します。
[alias] Iterable::RandomAccessIterator
std::random_access_iterator_tag を使用してイテレータを公開します。
メンバ関数のドキュメント
bool Iterable::containsKey(const QVariant &key) const
コンテナに指定されたkey を持つエントリが存在する場合、true を返し、そうでない場合はfalse を返します。key が期待される型に変換できない場合は、false が返されます。
QMetaAssociation::Iterable::ConstIterator Iterable::find(const QVariant &key) const
指定されたkey にある要素、またはそのキーが存在しない場合はコンテナの末尾を指すConstIterator を取得します。key が期待される型に変換できない場合、コンテナの末尾が返されます。
void Iterable::insertKey(const QVariant &key)
指定されたkey を持つ新しいエントリを挿入するか、指定されたkey を持つ既存のエントリのマッピング値を、デフォルトで構築されたマッピング値にリセットします。key は期待される型に型変換されます。変換できない場合は、デフォルト値が挿入されます。
QMetaAssociation::Iterable::Iterator Iterable::mutableFind(const QVariant &key)
指定されたkey にある要素、またはそのキーが存在しない場合はコンテナの末尾を指すイテレータを取得します。key が期待される型に変換できない場合、コンテナの末尾が返されます。
void Iterable::removeKey(const QVariant &key)
指定されたkey を持つエントリをコンテナから削除します。key は期待される型に変換されます。変換できない場合は、デフォルト値が削除されます。
void Iterable::setValue(const QVariant &key, const QVariant &mapped)
key に関連付けられたマップされた値を、可能であればmapped に設定します。指定されたkey に対してまだエントリが存在しない場合は、新しいエントリを挿入します。key がキーの型に変換できない場合、デフォルト構築されたキーの型の値が上書きされます。
value()も参照してください 。
QVariant Iterable::value(const QVariant &key) const
指定されたkey に対応するマッピングされた値を取得します。キーが存在しない場合は、マッピングされた型のデフォルトコンストラクタで生成されたインスタンスのQVariant を返します。key がキーの型に変換できない場合、デフォルトコンストラクタで生成されたキーに関連付けられたマッピングされた値が返されます。
setValue()も参照してください 。
© 2026 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 the GNU 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.