Basicamente, você tem duas opções que dependerão da versão do Ubuntu que você está usando (ou planeja usar).
-
Antes de 14.04 (a versão Qt é 5.0.x)
A única maneira de abrir uma janela de diálogo de arquivo é usar algum código C ++. Você terá que expor um método que seja um slot público para acessá-lo a partir do seu aplicativo QML.
Visite os links a seguir para obter um modelo para começar:
Em seguida, seu espaço público pode chamar a seguinte função
QFileDialog
: getOpenFileName ()QString GuiEngine::GetCSVFileName(void) { QString prompt = "Open File"; return QFileDialog::getOpenFileName(NULL, \ prompt, \ "report.csv", \ tr("CSV files (*.csv)"), \ NULL, \ QFileDialog::DontUseNativeDialog); }
Observação : ele funcionará somente com o QFileDialog: : Opção DontUseNativeDialog como renderização nativa cria uma janela fantasma, além da caixa de diálogo Arquivo (veja bug # 1214914 )
Ele criará uma janela como a abaixo:
-
14.04 (versão Qt 5.2.1)
Nesse caso, implementar um FileDialog é muito mais fácil fazer como não há necessidade de escrever código C ++.
Aqui está um exemplo mínimo para abrir uma caixa de diálogo de arquivo e sair depois que o usuário escolher um arquivo:
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 }