QFileDialog::getSaveFileName() 在文件对话框中点击保存后返回一个空字符串
Posted
技术标签:
【中文标题】QFileDialog::getSaveFileName() 在文件对话框中点击保存后返回一个空字符串【英文标题】:QFileDialog::getSaveFileName() returns an empty string after clicking on save in the file dialog 【发布时间】:2020-06-26 18:49:40 【问题描述】:当我尝试使用 qfiledialog 在我的 GUI 中保存文件时遇到了这个问题。我不知道为什么,但是当我单击 save_button 小部件时,文件对话框打开,我输入文件名并单击保存,但我的变量 saveFileName 在处理后仍然为空,所以我的程序总是停在那里。我不点击取消!我真的点击了保存,那么 getSaveFileName() 怎么能返回一个空字符串呢?谢谢!!
void MainWindow::on_save_button_clicked()
QString jsonFilter = "JSON Files (*.json)";
QString saveFileName = QFileDialog::getSaveFileName(this, "Save file", QDir::homePath(), jsonFilter);
if(fileName.isEmpty())
qDebug() << "no save file";
else
QJsonDocument jsonSaveDoc;
QJsonObject jsonSaveObj; // else statement continues if fileName contains something
【问题讨论】:
【参考方案1】:您没有检查正确的变量值。也许这只是一个错字,但它应该是saveFileName
而不是fileName
。试试这样的:
void MainWindow::on_save_button_clicked()
QString jsonFilter = "JSON Files (*.json)";
QString saveFileName = QFileDialog::getSaveFileName(this, "Save file", QDir::homePath(), jsonFilter);
if(saveFileName.isEmpty())
qDebug() << "no save file";
else
QJsonDocument jsonSaveDoc;
QJsonObject jsonSaveObj; // else statement continues if saveFileName contains something
【讨论】:
天哪,我的错。。我没有开始在 qt 上使用调试器,会在这里为我节省一些无用的工作...以上是关于QFileDialog::getSaveFileName() 在文件对话框中点击保存后返回一个空字符串的主要内容,如果未能解决你的问题,请参考以下文章