Как создать привязку свойств в Qt / C++?

в QML легко написать создать привязку свойств, например:

Rectangle {
    width: parent.width
} 

можно ли это сделать и на C++?

1 ответов


в Qt, некоторые QObjectесть определенные свойства это может быть "связано" с помощью сигналов и слотов:

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

кроме этого, вы все равно можете подключать другие сигналы и слоты, даже если они не связаны со свойствами.

Я должен отметить, что для этого нет синтаксического сахара. Вижу документация по свойствам для получения дополнительной информации.