FileDialog没有显示文件

时间:2018-09-16 15:57:54

标签: qt qml qt5 qtquick2

我在 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

1 个答案:

答案 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 // <--- +++
}