2015-09-29 8 views
5

W QML, łatwo napisać utworzyć właściwość wiązania, takie jak:Jak utworzyć powiązanie właściwości w Qt/C++?

Rectangle { 
    width: parent.width 
} 

Czy da się to zrobić w C++ zbyt?

+0

Nie ma interfejsu API C++, aby zrobić to bezpośrednio, musisz wykonać połączenie z sygnału width widthChanged, aby określić lambdę, która ustawia szerokość na szerokość rodzica. – dtech

Odpowiedz

4

W Qt, niektóre QObject s mieć pewność properties że może być „związany” z wykorzystaniem sygnałów i gniazd:

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

Oprócz tego, nadal można podłączyć inne sygnały i sloty, nawet jeśli nie są one związane z właściwościami.

Muszę zaznaczyć, że nie ma w tym celu cukru syntetycznego. Aby uzyskać więcej informacji, patrz properties documentation.

Powiązane problemy