【发布时间】:2016-07-04 15:25:27
【问题描述】:
我正在使用 Qt 5 和 QFileDialog。我想限制用户在文件名中使用正斜杠 (/)。
我有下面的 QFileDialog 代码来保存文件名。
QFileDialog saveAsdialog(this);
QString filename = saveAsdialog.getSaveFileName(this, tr("Save
file"), ".", tr("Files (*.csv)"));
在对话框中,如果用户在“下载”文件夹中提供文件名“abc.csv”,则“getSaveFileName”返回“/home/user/Downloads/abc.csv”,这是正确的。
但我的问题是,当用户在文件名 (/) 中给出正斜杠时,它的行为不正确。
例如如果用户想给文件名“abc/xyz.csv”,那么我没有得到正确的文件名。
当用户点击“确定”时,如何获取正确的文件名“abc/xyz.csv”?
【问题讨论】:
-
您能否详细说明在这种情况下您会得到什么,您的期望是什么?
-
我的期望是当用户在对话框中将文件名指定为“abc/xyz.csv”时,我想在用户按下确定按钮并关闭对话框时提取文件名。我得到像“/home/user/Downloads/abc/xyz.csv”这样的完整路径。从这个路径我无法找到用户给出的文件名。一旦用户关闭对话框,我们应该如何获得用户在对话框中给出的确切文件名?
-
@Neel 至少你可以派生出
QFileDialog并通过需要的检查重新实现accept方法。
标签: qt qfiledialog