Ubuntu SDK открывает диалоговое окно файла

Я начал играть с SDK, чтобы начать разрабатывать приложение.

Приложение будет чем-то, что позволит мне фильтровать записи в файле CSV критерием поиска. Но диалоговое окно файла существует так, чтобы файл мог быть расположен и как я использую его?

1
задан 23 March 2014 в 18:36

1 ответ

В основном у Вас есть две опции, которые будут зависеть от версии Ubuntu, которую Вы используете (или запланируйте использовать).

  • Прежде 14.04 (Спокойная версия 5.0.x)

    единственный способ открыть диалоговое окно файла состоит в том, чтобы использовать некоторый код C++. Необходимо будет представить метод, который является общедоступным слотом для доступа к нему из приложения QML.

    Посещение следующие ссылки, чтобы заставить шаблон запускаться с:

    Тогда, Ваш общедоступный слот может назвать следующий QFileDialog функция: getOpenFileName ()

    QString GuiEngine::GetCSVFileName(void)
    {
        QString prompt = "Open File";
    
        return QFileDialog::getOpenFileName(NULL, \
                                            prompt, \
                                            "report.csv", \
                                            tr("CSV files (*.csv)"), \
                                            NULL, \
                                            QFileDialog::DontUseNativeDialog);
    }
    

    Примечание : это будет только работать с QFileDialog:: опция DontUseNativeDialog как собственный рендеринг создает фантомное окно в дополнение к диалоговому окну Файла (См. ошибка № 1214914 )

Это создаст окно как то ниже:

enter image description here

  • 14.04 (Спокойная версия 5.2.1)

    В этом случае, реализовывая FileDialog намного более легко сделать, поскольку нет никакой потребности записать код C++.

    Вот минимальный пример для открытия диалогового окна файла и выхода после того, как пользователь выберет файл:

    import QtQuick 2.1
    import QtQuick.Dialogs 1.0
    
    FileDialog {
        id: fileDialog
        title: "Please choose a file"
        onAccepted: {
            console.log("You chose: " + fileDialog.fileUrls)
            Qt.quit()
        }
        onRejected: {
            console.log("Canceled")
            Qt.quit()
        }
        Component.onCompleted: visible = true
    }
    
1
ответ дан 11 November 2019 в 12:50

Другие вопросы по тегам:

Похожие вопросы: