2015-09-29 7 views
5

In QML, ist es einfach schreiben schafft eine Eigenschaft Bindung, wie zum Beispiel:Wie erstellt man eine Eigenschaftsbindung in Qt/C++?

Rectangle { 
    width: parent.width 
} 

Ist es möglich, dies in C++ zu tun?

+0

Es gibt keine C++ - API, um es direkt zu tun, Sie müssen eine Verbindung vom widthChanged-Signal des Elternteils herstellen, um ein Lambda zu sagen, das die Breite auf die Elternbreite einstellt. – dtech

Antwort

4

In Qt einige QObject s haben bestimmte properties, dass „gebunden“ sein kann, Signale und Slots mit:

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

Abgesehen davon, können Sie noch andere Signale und Slots verbinden, auch wenn sie nicht mit Eigenschaften verknüpft

Ich muss darauf hinweisen, dass es keine Syntaxzucker dafür gibt. Weitere Informationen finden Sie unter properties documentation.

Verwandte Themen