设置加载程序项 属性
Set Loader item property
在文件管理器的 中,我有一个 TableView
组件保存在文件 dirview.qml
中,它使用 FolderListModel
显示某些目录的内容:
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 字符串以设置 dirview.qml
组件的 folder_url
属性,并且该字符串必须覆盖默认值 file:///tmp
(所以我说的是某种 "binding")。
我尝试了一些没有用的东西,例如使用 Tab.onLoaded
设置 item.folder_url = "file:///home"
。视图没有改变。
正确的做法是什么?
谢谢!
您可以使用 Loader.item
属性 访问 Tab
对象。根据文档:
This property holds the top-level object that is currently loaded
例如:
Tab {
title: qsTr("Home")
source: "dirview.qml"
onLoaded: {
item.folder_url = "file:/home"
}
}
在文件管理器的 TableView
组件保存在文件 dirview.qml
中,它使用 FolderListModel
显示某些目录的内容:
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 字符串以设置 dirview.qml
组件的 folder_url
属性,并且该字符串必须覆盖默认值 file:///tmp
(所以我说的是某种 "binding")。
我尝试了一些没有用的东西,例如使用 Tab.onLoaded
设置 item.folder_url = "file:///home"
。视图没有改变。
正确的做法是什么?
谢谢!
您可以使用 Loader.item
属性 访问 Tab
对象。根据文档:
This property holds the top-level object that is currently loaded
例如:
Tab {
title: qsTr("Home")
source: "dirview.qml"
onLoaded: {
item.folder_url = "file:/home"
}
}