我有以下 qml 文件:
import QtQuick 2.2
import QtQuick.Dialogs 1.2
FileDialog
{
property string myTitle: "Select file to open"
property string myfilter: "All files (*)"
id: fileDialog
objectName: "fileDialogObj"
title: myTitle
folder: shortcuts.home
sidebarVisible : true
nameFilters: [ myfilter ]
onAccepted:
{
close()
}
onRejected:
{
close()
}
Component.onCompleted: visible = true
}
我想title
从 C++ 代码中设置属性。我的代码如下所示:
QQmlEngine engine;
QQmlComponent component( &engine );
component.loadUrl( QUrl( QStringLiteral( "qrc:/qml/my_file_dialog.qml" ) ) );
QObject* object = component.create();
object->setProperty( "myTitle", "Open file!" );
标题具有Select file to open
属性的初始值 ( )myTitle
并且永远不会更改为Open file!
我究竟做错了什么?
更新 我还尝试直接从 C++ 代码更新标题。
考虑到我有对话框对象,我像这样更新磁贴:
QQmlProperty::write( dialog, "title", "testing title" );
也像这样:
dialog->setProperty( "title", "testing title" );
未设置文件对话框的属性标题。
正如@Tarod 在他的回答中提到的,这似乎是一个错误。
还是我错过了什么?