QT QML 界面设计教程19—— 文件对话框

1、MyFileDialog.qml

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Dialogs 1.3
FileDialog {
        id: myfileDialog
        signal mySignal(string info)
        property string filaname: myfileDialog.fileUrl
        title: qsTr("Please choose a file")
        nameFilters: ["txt Files (*.txt)","All Files (*)"]
        selectMultiple: false
        //selectMultiple: true

        // 设置默认打开路径为当前用户的桌面
        onAccepted: {
            console.log("You chose: " + myfileDialog.fileUrls)
            console.log("You chose1: " + myfileDialog.fileUrl)
            console.log("You chose3: " + myfileDialog.folder)
            filaname = myfileDialog.fileUrl
            filaname = filaname.toString().substring(8,filaname.length)
            console.log("You chose4 " + filaname)
            mySignal(filaname)
        }
        onRejected: {
            console.log("Canceled")
        }

        Component.onCompleted: {
            // 在这里设置默认路径
            folder = StandardPaths.writableLocation(StandardPaths.DesktopLocation)
        }
 }


2、调用

   CNCFileDialog{
        id: fileDlg
        property string inputValue: ""
        onMySignal: {
            fileDlg.inputValue = fileDlg.filaname
            //自定义函数调用,传值“fileDlg.inputValue”       
            。。。。。
        }

    }       
     Button {
                id: btChange
                x: 10
                y: 30
                width: 164
                height: 30
                inputValue:"打开"

                onClicked:{
                    fileDlg.open()
                    
                }
            }

3、异常处理:module "QtQuick.Dialogs" is not installed

将qml目录下的Qt和QtQuick目录复制到qt工程的运行目录

QT QML 界面设计教程19—— 文件对话框_第1张图片

你可能感兴趣的:(qt,javascript,前端)