c++ - 如何在 Qt/C++ 中创建属性绑定(bind)?

标签 c++ qt qml

在 QML 中,很容易编写创建属性绑定(bind),例如:

Rectangle {
    width: parent.width
} 

是否也可以在 C++ 中执行此操作?

最佳答案

在 Qt 中,一些 QObject 有特定的 properties可以使用信号和槽“绑定(bind)”:

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

除此之外,您仍然可以连接其他信号和槽,即使它们没有关联到属性。

我必须指出,这样做没有语法糖。查看properties documentation了解更多信息。

关于c++ - 如何在 Qt/C++ 中创建属性绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842557/

相关文章:

c++ - 松散常量表达式中 union 非事件成员的左值到右值转换的解决方法

qt - 孙子打破中继器

c++ - ifstream.read() 与 MSVC++7.1 中的 ifstream.readsome()

c++ - 定义常量时包括算术运算

c++ - Qt中的空文件

c++ - VoIP:如何从 Qt 多媒体中的摄像头捕获实时音频/视频流字节?

c++ - 无法从 vector 访问初始化结构的内容

c++ - 是否可以从 C++ 在 QML 上编写上下文属性?

qt - 无法锚定到不是父项或同级 QML QtQuick 的项目

.net - 合并两个图像,其中一个是透明的