[Interest] Requesting QObject::bind() method
Prashanth Udupa
prashanth.udupa at gmail.com
Wed Mar 22 03:38:19 CET 2017
Hello All,
QML offers property binding, which is supremely useful. So, in a QML code like this
Item {
id: oneItem
width: anotherItem.width * 2
}
Whenever anotherItem’s width changes, oneItem’s width is recomputed.
From what I have seen we don’t have a direct way to make this kind of thing happen in C++. We will have to explicitly connect to widthChanged() signal in anotherItem and update oneItem’s width.
I run into situations where I have to show a slider’s value in a label for example. I would love it if we could write something like this:
QSlider *slider = ...
QLabel *label = ....
QObject::bind(slider, "value", label, "text”);
Sometimes, I want to alter the label’s text value based on slider’s current value. I would love it if we could write something like this:
QSlider *slider = ....
QLabel *label = ....
QObject::bind(slider, "value", label, "text", [](const QVariant &v) { return v.toInt()*2; });
For now, I have written my own PropertyBinder class as shown here: https://goo.gl/ejOIcF
It would be great if this feature is available in QtCore. I wasn’t sure where to make this suggestion, so I sent my email here.
Thanks,
Prashanth
More information about the Interest
mailing list