我已经开始使用 SDK 来开发应用程序。
该应用程序将允许我通过搜索词过滤 CSV 文件中的记录。但是否存在文件对话框以便可以找到文件,我该如何使用它?
答案1
基本上,您有两个选择,取决于您正在使用(或计划使用)的 Ubuntu 版本。
14.04 之前 (Qt 版本为 5.0.x)
打开文件对话框窗口的唯一方法是使用一些 C++ 代码。您必须公开一个公共槽方法,以便从 QML 应用程序访问它。
请访问以下链接获取模板:
然后你的公共插槽可以调用以下
QFileDialog
函数:获取打开文件名称()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)
它将创建一个如下所示的窗口:
14.04(Qt 版本 5.2.1)
在这种情况下,实施文件对话框因为不需要编写 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 }