QFileDialog 取消

Posted

技术标签:

【中文标题】QFileDialog 取消【英文标题】:QFileDialog cancelation 【发布时间】:2015-05-26 02:59:48 【问题描述】:

我是 QT 的新手。目前在我的项目中,我实现了QFileDialog

在我的用例中:每当用户选择一个文本文件时,它都会执行functionA。但是我发现如果在fileDialog中点击取消,functionA还是会被执行。

这是我的代码片段:

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                    "/home",
                                                 tr("Text File (*.txt"));

// I want something like following :

if(QFileDialog.isOkButtonClicked)

    // execute functionsA

我查看了QFileDialog 文档,没有类似的东西。 是否有可能实现这一目标或是否有其他解决方案?谢谢。

【问题讨论】:

doc.qt.io/qt-5/qfiledialog.html#getOpenFileName 文档说:“这是一个方便的静态函数,它返回用户选择的现有文件。如果用户按下取消,它会返回一个空字符串。” 感谢@AlexanderVX 的回复。我添加了if(!fileName.isEmpty()&&fileName!=""),它可以工作。但我不确定你的意思是什么? 是的。检查 !filenName.isNull() 就可以了。 【参考方案1】:

感谢 AlexanderVX

解决方法很简单:

if(!fileName.isEmpty()&& !fileName.isNull())
// functionA

【讨论】:

以上是关于QFileDialog 取消的主要内容,如果未能解决你的问题,请参考以下文章

QFileDialog:强制文件名

QFileDialog : 获取文件名

QFileDialog 不发出信号

接受单个文件或单个目录的 QFileDialog

如何让 QFileDialog 提示覆盖?

需要用 QFileDialog 保存一个新文件