2015-09-29 16 views
5

Trong QML, thật dễ dàng viết tạo ra một tài sản ràng buộc, chẳng hạn như:Cách tạo thuộc tính ràng buộc trong Qt/C++?

Rectangle { 
    width: parent.width 
} 

Có thể làm điều này trong C++ quá?

+0

Không có C++ API để làm điều đó trực tiếp, bạn phải tạo kết nối từ tín hiệu widthChanged của cha mẹ để nói lambda đặt độ rộng thành chiều rộng gốc. – dtech

Trả lời

4

Trong Qt, một số QObject s có một số properties có thể bị "buộc" sử dụng tín hiệu và khe cắm:

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

Ngoài ra, bạn vẫn có thể kết nối tín hiệu và khe cắm khác, ngay cả khi họ không liên kết với các thuộc tính.

Tôi phải chỉ ra rằng không có đường cú pháp để thực hiện việc này. Xem properties documentation để biết thêm thông tin.

Các vấn đề liên quan