Russian Qt Forum
Ноябрь 22, 2024, 22:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QML: Как перейти к строке, в которой нажата кнопка?  (Прочитано 2629 раз)
Mira
Гость
« : Ноябрь 11, 2015, 06:48 »

Добрый день,
у меня возникла следующая задача - есть TreeView, в одной из колонок картинка, при нажатии на которую (происходит событие)
но! Фокус (текущая строка) не меняется на строку с кликнутой картинкой, так как на картинку наложена MouseArea она перекрывает TreeView, и фокус не переходит на эту строчку. Как сделать, чтоб при нажатии на картинку и фокус смещался на эту строку и событие вызвалось? Надеюсь понятно объясняю, вот собственно код:
Код:
	TreeView {
clip: true
id: mapsTreeView
objectName: "mapsTreeView"
model: theModel

TableViewColumn {
width: 100
role: "name_role"
title: "Map"
}
TableViewColumn {
width: 50
role: "description_role"
}
TableViewColumn {
id: imageColumn
width: 20
role: "image_role"
delegate: Item {
MouseArea {
anchors.fill: parent
onClicked: {
mapsTreeView.sigChangeState()
}
}
Image {
anchors.fill: parent
width: 5
source: "icon" + styleData.value + ".png"
}
}

}
signal sigChangeState()
}
« Последнее редактирование: Ноябрь 11, 2015, 09:48 от Mira » Записан
Mira
Гость
« Ответ #1 : Ноябрь 11, 2015, 07:25 »

Есть еще вариант с кнопкой:

      
Код:
TableViewColumn {
id: imageColumn
width: 20
role: "image_role"
delegate: Button {
iconSource: "icon" + styleData.value + ".png"
onClicked: mapsTreeView.sigChangeState()
}

Но опять же: при нажатии на кнопку из соседней строки - фокус на строку не переходит, как  это происходит при нажатии на текст.


В ListView я это реализовывала просто :
Код:
onClicked:{
mapsView.currentIndex=model.index
mapsState.sigChangeState()
}

но у treeView в currentIndex нельзя записать.
« Последнее редактирование: Ноябрь 11, 2015, 09:29 от Mira » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.