Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:在getSaveFileName中隐藏文件夹_C++_Qt_Qtgui_Qfiledialog_Qtwidgets - Fatal编程技术网

C++ Qt:在getSaveFileName中隐藏文件夹

C++ Qt:在getSaveFileName中隐藏文件夹,c++,qt,qtgui,qfiledialog,qtwidgets,C++,Qt,Qtgui,Qfiledialog,Qtwidgets,我想使用QFileDialog::getSaveFileName保存文件,但不允许选择路径或至少隐藏文件夹。 读取我试图将QFileDialog::ShowDirsOnly设置为如下选项的文档: QString fileName = QFileDialog::getSaveFileName(this, tr("..."), path, tr("... (*.txt)"), 0, QFileDialog

我想使用
QFileDialog::getSaveFileName
保存文件,但不允许选择路径或至少隐藏文件夹。 读取我试图将
QFileDialog::ShowDirsOnly
设置为如下选项的文档:

QString fileName = QFileDialog::getSaveFileName(this,
                                                tr("..."), path, tr("... (*.txt)"), 0, QFileDialog::ShowDirsOnly);
但它不起作用或者它不是我想要的

是否有一种方法可以保存文件,而不必在系统中查找位置并使用
QFileDialog::getSaveFileName
请?或者我需要构建自己的QFileDialog,在这里我只需要写文件名


我希望有人能理解我的问题。

正如评论中所指出的,您正在寻找一种不完全是QFileDialog的特定行为,尽管诚然有些相似

我相信不可能从QFileDialog中缩减此功能,因此我个人会在后台使用所需的健全性检查来实现我自己的输入框

QFileDialog实现可能会为此类检查提供一些提示,但查看其源代码并不重要,因为这些操作相对简单


然后,您可以使用消息框提供警告和错误消息。这就是说,对于Qt 5来说,考虑QML对于这些操作可能更有益处。

如果您只喜欢用户选择文件名,为什么需要文件对话框呢?我个人不会使用QFileDialog,而只是一个自定义输入框。这是我到目前为止所做的,但我想要一些美观的东西。并使用
getSaveFileName
在删除同名文件之前询问。您可以使用输入和消息框来完成此操作。你似乎不想有一个QFileDialog。你似乎想有一个自定义的输入框。是的,这就是我最终要做的。我只是觉得我可以避免这样。谢谢你的帮助。是的,明白了。顺便说一下,考虑QML的未来。QML在这里有什么帮助,而不是在widgets应用程序中看起来“陌生”?我还要指出QFileSystemModel,因为它可以用于自定义选择对话框。(这也是我的建议)@Frank:1)除了QFileDialog,我没有看到问题中提到的小部件。2) 即使是这样,在qml中组合起来也更简单。3) QML!=!小部件;qml只是一种语言。但是有些人把它和QtQuick(控件)混淆了。可以用QML编写基于小部件的应用程序。4) QFSM只是一个模型,而不是一个视图。5) 我不确定在这个简单的案例中你是否需要这个。IMHO.QListView+QFSM有点太重了,怎么能比这更容易呢?好的,至少在您需要代理模型之前;)。对于单个文件夹,如果不熟悉模型/视图,仅使用QDir plus列表视图可能更容易。是的,我知道QML!=QtQuick和组合QML+小部件在概念上是可能的,只是在Qt中没有内置的支持,所以用户2886875不太可能走这条路。顺便说一句,我指的是“概念上可能”。@Frank:使用行输入并在“OK”上运行验证更容易,因此,QML和QtQuick(控制)是未来的证明;事实并非如此。