限制FileDialog文件夹

时间:2016-06-02 09:33:07

标签: qt qml filedialog

我在Linux上的Qt应用程序中使用QtQuick Dialogs 1.2,我想将FileDialog限制为仅由我指定的两个路径。我的FileDialog是这样的:

FileDialog {
    id: fileDialogExample
    title: qsTr("File Dialog example")
    nameFilters: [qsTr("Image files %1").arg("(*.jpg *.png)")]
    folder: '/home/user/Downloads'
}

我希望我的文件对话框只接受jpg / png文件并从指定的路径开始,但只能移动到/ mnt。这可能与Qt Dialogs 1.2中的库存FileDialog有关吗?

1 个答案:

答案 0 :(得分:0)

文档未提及允许特定目录。我在类似案例中做过的事情是这样的:

.checkbox label::before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 17px;
    height: 17px;
    /* left: 0; */
    margin-left: -20px;
    border: 1px solid #cccccc;
    border-radius: 3px;
    background-color: #fff;
    -webkit-transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
    -o-transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
    transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
}

不幸的是,这不适用于库存FileDialog { onFolderChanged: { if (/* folder not allowed */) folder = /* closest allowed dir */ // does not do anything with stock FileDialog } } 。我一直在使用自定义组件,我完全控制它。我认为用当前FileDialog做你需要的东西是不可能的。当然,当用户打开不需要的文件夹然后用正确的路径重新打开它时,你可以关闭对话框,但我不推荐它。