QDesignerPropertyEditorInterface Class
QDesignerPropertyEditorInterface クラスを使用すると、Qt Widgets Designer のプロパティ・エディタの現在の状態を照会および操作できます。詳細...
Header: | #include <QDesignerPropertyEditorInterface> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Designer) target_link_libraries(mytarget PRIVATE Qt6::Designer) |
qmake: | QT += designer |
Inherits: | QWidget |
パブリック関数
QDesignerPropertyEditorInterface(QWidget *parent, Qt::WindowFlags flags = {}) | |
virtual | ~QDesignerPropertyEditorInterface() |
virtual QDesignerFormEditorInterface * | core() const |
virtual QString | currentPropertyName() const = 0 |
virtual bool | isReadOnly() const = 0 |
virtual QObject * | object() const = 0 |
パブリックスロット
virtual void | setObject(QObject *object) = 0 |
virtual void | setPropertyValue(const QString &name, const QVariant &value, bool changed = true) = 0 |
virtual void | setReadOnly(bool readOnly) = 0 |
シグナル
void | propertyChanged(const QString &name, const QVariant &value) |
詳細説明
QDesignerPropertyEditorInterfaceには、プロパティ・エディタの現在の状態を問い合わせるために一般的に使用される関数のコレクションと、その状態を操作するいくつかのスロットが含まれています。また、このインターフェイスは、プロパティ・エディタでプロパティが変更されるたびに発行されるシグナルpropertyChanged ()を提供します。シグナルの引数は、変更されたプロパティとその新しい値です。
例えば、カスタムウィジェットプラグインを実装する場合、シグナルをカスタムスロットに接続することができます:
auto *propertyEditor = formEditor->propertyEditor(); connect(propertyEditor, &QDesignerPropertyEditorInterface::propertyChanged, this, &MyClass::checkProperty);
カスタムスロットは、特定のウィジェットに属する指定されたプロパティが変更されたときに、新しい値が必要な範囲内にあるかどうかをチェックすることができます:
void checkProperty(const QString &property, const QVariant &value) { auto *propertyEditor = formEditor->propertyEditor(); auto *object = propertyeditor->object(); auto *widget = qobject_cast<MyCustomWidget *>(object); if (widget && property == aProperty && value != expectedValue) {...} }
QDesignerPropertyEditorInterfaceクラスは、直接インスタンス化することを意図していません。Qt Widgets Designerのプロパティ・エディタへのインタフェースを取得するには、QDesignerFormEditorInterface::propertyEditor ()関数を使用します。Qt Widgets Designerの現在のQDesignerFormEditorInterface オブジェクト(上記の例ではformEditor
)へのポインタは、QDesignerCustomWidgetInterface::initialize ()関数のパラメータで提供されます。カスタムウィジェットプラグインを実装する場合、QDesignerCustomWidgetInterface をサブクラス化し、プラグインを Qt Widgets Designer に公開する必要があります。
プロパティ・エディタにアクセスする関数は、フォーム・エディタへのインタフェースを取得するために使用できるcore ()関数、プロパティ・エディタで現在選択されているプロパティの名前を返すcurrentPropertyName ()関数、Qt Widgets Designerのワークスペースで現在選択されているオブジェクトを返すobject ()関数、プロパティ・エディタが書き込み保護されている場合にtrueを返す(そうでない場合はfalse)isReadOnly ()関数です。
プロパティ・エディタの状態を操作するスロットは、Qt Widgets Designerのワークスペースで現在選択されているオブジェクトを変更するために使用できるsetObject ()スロット、指定されたプロパティの値を変更するsetPropertyValue ()スロット、およびプロパティ・エディタの書き込み保護を制御するsetReadOnly ()スロットです。
QDesignerFormEditorInterfaceも参照してください 。
メンバ関数ドキュメント
[explicit]
QDesignerPropertyEditorInterface::QDesignerPropertyEditorInterface(QWidget *parent, Qt::WindowFlags flags = {})
与えられたparent と指定されたウィンドウflags を持つプロパティ・エディタ・インターフェースを構築します。
[virtual noexcept]
QDesignerPropertyEditorInterface::~QDesignerPropertyEditorInterface()
プロパティ・エディター・インターフェースを破棄します。
[virtual]
QDesignerFormEditorInterface *QDesignerPropertyEditorInterface::core() const
Qt Widgets Designer の現在のQDesignerFormEditorInterface オブジェクトへのポインタを返します。
[pure virtual]
QString QDesignerPropertyEditorInterface::currentPropertyName() const
プロパティ・エディタで現在選択されているプロパティの名前を返します。
setPropertyValue()も参照してください 。
[pure virtual]
bool QDesignerPropertyEditorInterface::isReadOnly() const
プロパティ・エディターが書き込み保護されている場合はtrueを返し、そうでない場合はfalseを返します。
setReadOnly() も参照して ください。
[pure virtual]
QObject *QDesignerPropertyEditorInterface::object() const
Qt Widgets Designer のワークスペースで現在選択されているオブジェクトを返します。
setObject() も参照して ください。
[signal]
void QDesignerPropertyEditorInterface::propertyChanged(const QString &name, const QVariant &value)
このシグナルは、プロパティ・エディタでプロパティが変更されるたびに発行されます。変更されたプロパティとその新しい値は、それぞれname とvalue で指定されます。
setPropertyValue() も参照して ください。
[pure virtual slot]
void QDesignerPropertyEditorInterface::setObject(QObject *object)
Qt Widgets Designer のワークスペースで現在選択されているオブジェクトをobject に変更します。
object() も参照して ください。
[pure virtual slot]
void QDesignerPropertyEditorInterface::setPropertyValue(const QString &name, const QVariant &value, bool changed = true)
name で指定されたプロパティの値をvalue に設定します。
さらに、プロパティ・エディタでは、プロパティはchanged としてマークされ、その値はデフォルト値と異なります。
currentPropertyName() およびpropertyChanged()も参照してください 。
[pure virtual slot]
void QDesignerPropertyEditorInterface::setReadOnly(bool readOnly)
readOnly が true の場合、プロパティ・エディタは書き込み禁止になります。
isReadOnly()も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。