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 のインスタンスは、QVariantHash またはQVariantMap に変換できる場合、またはカスタムミュータブルビューが登録されている場合、QVariant から抽出することができます。
QHash<int、 QString> mapping; mapping.insert(7, "Seven"); mapping.insert(11, "Eleven"); mapping.insert(42, "Forty-two");QVariantvariant=QVariant::fromValue(mapping);if(variant.canConvert<QVariantHash>()) { QMetaAssociation::Iterable iterable=variant.value<QMetaAssociationif (variant canConvert< >()) { ::Iterable iterable = variant.value<::Iterable>();// C++11 range-for over the values: for(constQVariant&v: iterable) { の場合 qDebug() << v; }// イテレータを使用できる: QMetaAssociation::Iterable::const_iterator it=iterable.begin();constQMetaAssociation::Iterable::const_iterator end=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.