Russian Qt Forum

Qt => Qt Quick => Тема начата: Пантер от Май 03, 2011, 14:13



Название: Фокус и вложенные контролы
Отправлено: Пантер от Май 03, 2011, 14:13
SomeControl.qml
Код:
Rectangle {
  Rectangle {
    id: rec_0
    KeyNavigation.right: rec_1
  }
  Rectangle {
    id: rec_1
    KeyNavigation.left: rec_0
  }
}
SomeClass.qml
Код:
Rectangle {
  Rectangle {
    id: rec_0
    KeyNavigation.right: someControl
    KeyNavigation.left: rec_1
  }

  SomeControl {
    id: someControl
    KeyNavigation.right: rec_1
    KeyNavigation.left: rec_0
  }


  Rectangle {
    id: rec_1
    KeyNavigation.left: someControl
    KeyNavigation.right: rec_0
  }
}

Как правильно заставить работать фокус?
Внесение в SomeControl.qml
Код:
onFocusChanged: {
rec_0.focus = true;
}
Немного помогает, но при попадании фокуса в SomeControl.qml, выделяется всегда rec_0, не зависимо от того, с какой стороны передан фокус. В общем, что-то я не воткну никак в фокусы в QML.


Название: Re: Фокус и вложенные контролы
Отправлено: twp от Май 03, 2011, 19:51
так должно работать
Код:
FocusScope {
   Rectangle {
     Rectangle {
       id: rec_0
       KeyNavigation.right: rec_1
     }
     Rectangle {
       id: rec_1
       KeyNavigation.left: rec_0
     }
  }
}


Название: Re: Фокус и вложенные контролы
Отправлено: Пантер от Май 03, 2011, 20:24
Хм. Так я не пробовал. Завтра проверю, спасибо.


Название: Re: Фокус и вложенные контролы
Отправлено: Пантер от Май 04, 2011, 11:56
Не помогло. :(


Название: Re: Фокус и вложенные контролы
Отправлено: twp от Май 04, 2011, 12:56
вот небольшая демка, в ней происходит переход фокуса во вложенных элементах. Единственное я не смог добиться чтоб обход вложенных элементов происходил всегда. А так он происходит только при смене направления обхода.


Название: Re: Фокус и вложенные контролы
Отправлено: Пантер от Май 04, 2011, 13:15
Мда... С фокусом у QML все плохо.