2015-09-29 15 views
5

が、それはのような、結合性を作る書くのは簡単です:Qt/C++でプロパティバインディングを作成する方法は? QMLで

Rectangle { 
    width: parent.width 
} 

あまりにもC++でこれを行うには、それは可能ですか?

のQtで
+0

直接行うC++ APIはありません。親のwidthChangedシグナルから、親の幅に幅を設定するラムダを接続する必要があります。 – dtech

答えて

4

、いくつかのQObject sがシグナルとスロットを使用して「バインド」することができ、特定のpropertiesを持っている:

auto *someWidget = QPushButton(/* ... */); 
auto *otherRelatedWidget = QLabel(/* ... */); 
// windowTitle is a property for both QWidgets 
QObject::connect(someWidget, &QWidget::windowTitleChanged, 
       otherRelatedWidget, &QWidget::setWindowTitle); 

これとは別に、あなたはまだ、彼らがでなくても、他のシグナルとスロットを接続することができますプロパティに関連付けられます。

私は、これを行うためのシンタックスシュガーがないことを指摘しておきます。詳細は、properties documentationを参照してください。