[Qt-qml] Javascript constants not allowed in models
Leonty
kavaj at mail.ru
Mon Jan 10 21:09:18 CET 2011
Thanks a lot! I'm going to try it.
Gregory Schlomoff пишет:
> Hmmm, that makes some sense. I presume the ListElement needs data that
> is really constant, and Qt.* constants seem to be "script properties",
> which may not be constant from the point of view of the qml engine.
>
> Maybe you could resort to some kind of hack, like putting a table of
> your Key constants in a javascript array or object. Granted, with this
> hack, you would actually be constructing a parallel JS model to the
> QML model.
>
> Something along the lines of:
> ==============
> Rectangle {
> width: 360
> height: 360
>
> function keys(c) {
> var table = {key7: Qt.Key_7}
> return table[c];
> }
>
> Repeater {
> model: ListModel {
> ListElement { label: "7"; value: "7"; key: "key7" }
> }
> delegate: Text {
> text: model.label + " : " + keys(model.key)
> }
> }
> }
> ============
>
> Could probably be improved for better semantics. You could use a JS
> array instead of an object. But there may be some nice stuff to get
> from the object, like the ability to access the data with dot notation
> (ie: table.key7)
>
> On Tue, Jan 4, 2011 at 7:43 PM, Alexey <kavaj at mail.ru> wrote:
>> I tried to create a numeric keyboard and stuck at the following: I want to let every
>> button handle its own key, so I pass this key through the model:
>>
>> Repeater {
>> model: ListModel {
>> id: model
>> ListElement { label: "7"; value: "7"; key: Qt.Key_7 }
>> ...
>>
>> In the button component (delegate) I use this:
>>
>> Keys.onPressed: {
>> if (event.key == model.key) {
>> event.accepted = true;
>> clicked(model.value);
>> ...
>>
>> But the point is that it doesn't let me use Qt.Key* constants:
>> file:///D:/Projects/qmlinterface/Controls/Numpad.qml:25:43: ListElement: cannot use script
>> for property value
>> ListElement { label: "7"; value: "7"; key: Qt.Key_7 }
>> ^
>>
>> I could hardcode key codes as integers, but it's not really portable... What would you
>> suggest, guys?
>> _______________________________________________
>> Qt-qml mailing list
>> Qt-qml at qt.nokia.com
>> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>>
More information about the Qt-qml
mailing list