В context из файлового менеджера, у меня есть TableView
компонент, сохраненный в файле dirview.qml
, который отображает содержимое некоторого каталога с помощью FolderListModel
:Set Loader вещь свойство
import QtQuick 2.4
import QtQuick.Controls 1.4
import Qt.labs.folderlistmodel 2.1
TableView {
id: tableView
property string folder_url: "file:///tmp"
anchors.fill: parent
TableViewColumn {
role: "fileName"
title: qsTr("Name")
width: tableView.width * 0.7
}
TableViewColumn {
role: "fileURL"
title: qsTr("Size")
width: tableView.width * 0.2
}
FolderListModel {
id: folderModel
folder: folder_url
nameFilters: ["*"]
showHidden: true
showDirsFirst: true
showDotAndDotDot: true
}
model: folderModel
}
Сейчас в main.qml
, я хочу загрузите этот компонент в Tab
. Поскольку Tab
является Loader
, я могу сделать следующее:
TabView {
id: tabView2
Tab {
title: qsTr("Home")
source: "dirview.qml"
}
}
Однако то, что мне нужно сделать, это каким-то образом передавая строку URL, чтобы установить folder_url
свойство dirview.qml
компонента, и эта строка должна перезаписать значение по умолчанию file:///tmp
(так что я называю «привязкой»).
Я пробовал несколько вещей, которые не работали, например, используя Tab.onLoaded
для установки item.folder_url = "file:///home"
. Вид не изменяется.
Каков правильный путь?
Спасибо!
это действительно прекрасно работает, и это правильный путь. Может, он использовал неправильный путь? Было бы неплохо, если бы вы также могли рекомендовать OP для использования 'alias': это хорошее место, где его можно использовать. Например. он мог бы написать папку свойств alias: folderModel.folder' вместо текущего использования нового свойства. – BaCaRoZzo
Большое вам спасибо! Это было действительно из-за неверного пути, но я подозревал, что 'onLoaded' не был правильным обработчиком, поэтому упустил тривиальную ошибку. И вместо этого я использую «псевдоним свойств». Спасибо за помощь! – treslumen
@treslumen очень хорошо. Счастливое кодирование! :) – BaCaRoZzo