我在 main.qml 中有此代码:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Controls 2.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Test")
FileDialog {
id: fileDialog
folder: shortcuts.home
visible: true
title: "Please choose an image"
nameFilters: ["Image files (*.jpg *.png)", "All files (*)"]
onAccepted: {
image.source = fileDialog.fileUrl
}
}
Image {
id: image
anchors.centerIn: parent
}
}
在QtCreator中按“运行”运行它时,出现一个文件对话框,其中未列出文件。
屏幕截图1
如果我以qmlscene-qt5 main.qml
的身份运行,它会列出文件,但是这样我就没有可用的过滤器(仅限“所有文件”)。
截屏2
答案 0 :(得分:1)
必须在项目完全创建后使其可见:
FileDialog {
id: fileDialog
folder: shortcuts.home
// visible: true <--- ---
title: "Please choose an image"
nameFilters: [ "Image files (*.jpg *.png)", "All files (*)" ]
onAccepted: {
image.source = fileDialog.fileUrl
}
Component.onCompleted: visible = true // <--- +++
}