QProperty Class
template <typename T> class QPropertyQPropertyクラスは、プロパティの自動バインディングを可能にするテンプレート・クラスです。詳細...
Header: | #include <QProperty> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Since: | Qt 6.0 |
Inherits: | QPropertyData |
パブリック関数
QProperty() | |
QProperty(Functor &&f) | |
QProperty(T &&initialValue) | |
QProperty(const QPropertyBinding<T> &binding) | |
QProperty(const T &initialValue) | |
~QProperty() | |
QPropertyNotifier | addNotifier(Functor f) |
QPropertyBinding<T> | binding() const |
QPropertyChangeHandler<Functor> | onValueChanged(Functor f) |
QPropertyBinding<T> | setBinding(const QPropertyBinding<T> &newBinding) |
QPropertyBinding<T> | setBinding(Functor f) |
bool | setBinding(const QUntypedPropertyBinding &newBinding) |
void | setValue(QProperty<T>::parameter_type newValue) |
void | setValue(QProperty<T>::rvalue_ref newValue) |
QPropertyChangeHandler<Functor> | subscribe(Functor f) |
QPropertyBinding<T> | takeBinding() |
QProperty<T>::parameter_type | value() const |
QProperty<T> & | operator=(QProperty<T>::parameter_type newValue) |
QProperty<T> & | operator=(QProperty<T>::rvalue_ref newValue) |
詳細説明
QProperty<T> はQt Bindable Properties を実装したクラスの一つです。Tのインスタンスを保持するコンテナです。これに値を代入したり、value ()関数やT変換演算子を使って値を読み取ることができます。また、値を動的に計算する式(バインディング式)にプロパティを結びつけることもできます。これはC++のラムダとして表現され、アプリケーション内の異なるプロパティ間の関係を表現するために使用することができます。
注意: QMLでは、Q_PROPERTY のQProperty をBINDABLEキーワードで公開することが重要です。その結果、QMLエンジンはこれをバインダブルインターフェイスとして使用し、プロパティのバインディングを設定します。そして、そのバインディングは通常のAPIを介してC++とやりとりすることができます:QProperty<T>::onValueChanged、QProperty::takeBinding 、QBindable::hasBinding プロパティがBINDABLEである場合、エンジンはC++のプロパティシステムに固有の変更追跡機能を使用して変更を通知します。
メンバ関数 ドキュメント
void QProperty::setValue(QProperty<T>::parameter_type newValue)
void QProperty::setValue(QProperty<T>::rvalue_ref newValue)
このプロパティにnewValue を割り当て、プロパティに関連するバインディングがある場合は削除します。
QProperty<T> &QProperty::operator=(QProperty<T>::parameter_type newValue)
QProperty<T> &QProperty::operator=(QProperty<T>::rvalue_ref newValue)
このプロパティにnewValue を割り当て、このQProperty への参照を返します。
QProperty::QProperty()
デフォルトで構築された T のインスタンスを持つプロパティを構築します。
[explicit]
template <typename Functor> QProperty::QProperty(Functor &&f)
提供されたバインディング式f に関連付けられたプロパティを構築します。このプロパティの値は、新しいバインディングの評価結果に設定されます。バインディングの依存関係が変更されるたびに、バインディングが再評価され、それに応じてプロパティの値が更新されます。
[explicit default]
QProperty::QProperty(T &&initialValue)
Move -指定されたinitialValue でプロパティを構築します。
[explicit]
QProperty::QProperty(const QPropertyBinding<T> &binding)
提供されたbinding 式に結び付けられたプロパティを構築します。プロパティの値は、新しいバインディングの評価結果に設定されます。バインディングの依存関係が変更されるたびに、バインディングが再評価され、それに応じてプロパティの値が更新されます。
[explicit default]
QProperty::QProperty(const T &initialValue)
提供されたinitialValue でプロパティを構築します。
QProperty::~QProperty()
プロパティを破棄します。
template <typename Functor> QPropertyNotifier QProperty::addNotifier(Functor f)
プロパティの値が変更されるたびに呼び出されるコールバックとして、指定されたファンクタf をサブスクライブします。
コールバックf は、パラメータを持たないプレーンな呼び出し演算子()
を持つ型であることが期待されます。つまり、C++のラムダ式やstd::関数、あるいは呼び出し演算子を持つカスタム構造体を指定することができます。
返されたプロパティ変更ハンドラオブジェクトは、サブスクリプションを追跡します。このオブジェクトがスコープ外に出ると、コールバックは購読を解除されます。
返されるオブジェクトはテンプレートではないので、このメソッドはonValueChanged() よりも使いやすい場合があります。そのため、クラスのメンバなど、より簡単に格納することができます。
onValueChanged() およびsubscribe()も参照して ください。
QPropertyBinding<T> QProperty::binding() const
このプロパティに関連付けられているバインディング式を返します。そのような関連付けが存在しない場合は、デフォルトで構築された QPropertyBinding<T> が返されます。
setBinding()も参照してください 。
template <typename Functor> QPropertyChangeHandler<Functor> QProperty::onValueChanged(Functor f)
プロパティの値が変更されるたびに呼び出されるコールバックとして、指定されたファンクタf を登録します。値が変更されるたびに、ハンドラは即座に呼び出されるか、コンテキストに応じて遅延されます。
コールバックf は、パラメータを持たないプレーンなコール演算子()
を持つ型であることが期待されます。つまり、C++のラムダ式やstd::関数、あるいはコール演算子を持つカスタム構造体を指定することができます。
返されたプロパティ変更ハンドラ・オブジェクトは、登録を追跡します。このオブジェクトがスコープ外に出ると、コールバックは登録解除されます。
QPropertyBinding<T> QProperty::setBinding(const QPropertyBinding<T> &newBinding)
このプロパティの値を、指定されたnewBinding 式に関連付け、以前に関連付けられたバインディングを返します。プロパティの値は、新しいバインディングの評価結果に設定されます。バインディングの依存関係が変更されるたびに、バインディングが再評価され、それに応じてプロパティの値が更新されます。
binding()も参照してください 。
template <typename Functor> QPropertyBinding<T> QProperty::setBinding(Functor f)
これはオーバーロードされた関数です。
このプロパティの値を提供されたファンクタf に関連付け、以前に関連付けられたバインディングを返します。プロパティの値は、新しいバインディングの評価結果に設定されます。バインディングの依存関係が変更されるたびに、バインディングは再評価され、それに応じてプロパティの値も更新されます。
プロパティ・バインディングの定式化も参照してください 。
bool QProperty::setBinding(const QUntypedPropertyBinding &newBinding)
これはオーバーロードされた関数です。
このプロパティの値を、指定されたnewBinding 式に関連付けます。プロパティの値は、新しいバインディングの評価結果に設定されます。バインディングの依存関係が変更されるたびに、バインディングが再評価され、それに応じてプロパティの値が更新されます。
このプロパティの型がバインディング関数が返す型と同じであればtrueを返し、そうでなければfalseを返します。
template <typename Functor> QPropertyChangeHandler<Functor> QProperty::subscribe(Functor f)
指定されたファンクタf を、プロパティの値が将来変更されるたびに即座に呼び出されるコールバックとしてサブスクライブします。値が変更されるたびに、ハンドラは即座に呼び出されるか、コンテキストに応じて遅延されます。
コールバックf は、コピー可能で、パラメータを持たないプレーンなコール演算子()を持つ型であることが期待されます。つまり、C++のラムダ式やstd::関数、あるいはコール演算子を持つカスタム構造体を指定することができます。
返されたプロパティ変更ハンドラオブジェクトは、サブスクリプションを追跡します。このオブジェクトがスコープ外に出ると、コールバックの購読が解除されます。
QPropertyBinding<T> QProperty::takeBinding()
このプロパティからバインディング式の関連付けを解除し、それを返します。この関数を呼び出した後、プロパティの値は、新しい値を代入した場合、または新しいバインディングが設定された場合にのみ変更されます。
QProperty<T>::parameter_type QProperty::value() const
プロパティの値を返します。この関数は、値を返す前に、このプロパティに関連付けられているバインディング式を評価することができます。
setValue()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。