2015-11-18 5 views
-1

Я пытаюсь использовать компонент FileDialog в QML.QML FileDialog issue

Я сделал точно такой же код, что и в документации Qt по ссылке http://doc.qt.io/qt-5/qml-qtquick-dialogs-filedialog.html, и он не отображает диалоговое окно и возвращает ошибку: QFileInfo::absolutePath: Constructed with empty filename. Я попытался написать простой код, чтобы проверить его, и возврат был той же ошибкой. Мой код ниже.

import QtQuick 2.4 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.3 
import QtQuick.Dialogs 1.2 

Window { 
    visible: true 

    width: 360 
    height: 640 

    maximumHeight: 640 
    minimumHeight: 640 

    maximumWidth: 360 
    minimumWidth: 360 

    title: "Acessar Galeria Test" 

    Rectangle { 
     id: principal 

     anchors.fill: parent 

     FileDialog { 
      id: fileDialog 

      title: "Please choose a file" 

      folder: shortcuts.home 

      visible: true 
     } 
    } 
} 
+0

Код, который вы опубликовали, отлично подходит для меня. диалоговое окно файла показало, как ожидалось. вы пытались сменить папку на строку вроде «папка:»/home/user/Documents «'? – ramtheconqueror

+0

Простое примечание: видимое свойство FileDialog по умолчанию ложно, поэтому нет необходимости явно устанавливать его false. «Лучшим» способом показать это просто вызов yourFileDialog.open(), например, в этом случае в Component.onCompleted. – kuipersn

ответ

1

Отвечая на мой собственный вопрос:

FileDialogvisible property не может быть правдой, в то время как компонент не является полным. Таким образом, код должен быть следующим:

import QtQuick 2.4 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.3 
import QtQuick.Dialogs 1.2 

Window { 
    visible: true 

    width: 360 
    height: 640 

    maximumHeight: 640 
    minimumHeight: 640 

    maximumWidth: 360 
    minimumWidth: 360 

    title: "Acessar Galeria Test" 

    Rectangle { 
     id: principal 

     anchors.fill: parent 

     FileDialog { 
      id: fileDialog 

      title: "Please choose a file" 

      folder: shortcuts.home 

      visible: false 
     } 
    } 

    Component.onCompleted: { 
     fileDialog.visible = true; 
    } 
} 
Смежные вопросы