• 3272阅读
  • 1回复

[提问]关于QFileDialog保存文件的问题 [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2014-12-25
有这样一段代码
  1. QString paths = QFileDialog::getSaveFileName(this,tr("另存为.."),".",tr("Text File(*.txt);;C++ File(*.cpp));
  2. QFile files(paths);
  3. QTextStream out(&files);
  4. out<<edits->toPlainText();  //这里edits是一个QTextEdit

我想用QFileDialogQtextEdit上的内容保存,保存文件的类型有2个选择,.txt和.cpp
然后我在win7上编译后保存的时候输入文件名123
如果选择的是.txt,就会自动生成123.txt,如果选择是.cpp就会自动生成123.cpp

然后同样的代码在linux(ubuntukylin14.04)编译后,保存文件的时候,输入文件名123,无论选择.txt还是.cpp,他始终生成文件名为123,必须在输入的时候手动输入123.txt或者123.cpp,

我想问下这个是QFileDialog在linux下必须做额外的设置,还是说linux下getSaveFileName()函数的第4个参数有和没有是一样的。。。
离线dbzhang800

只看该作者 1楼 发表于: 2014-12-25
可以这么来理解。
那个 fliter 只是用来过滤 你在文件对话框中需要显示的内容的。 但是呢,Windows的文件对话框会自动根据你选择的filter来自动更新你的文件名,而Linux下的文件对话框不这么做。

如果你需要保持一致,你应该在 获取文件名的 同时,也获取 selectedFilter的值,然后组合或调整成成你需要的文件名。
快速回复
限100 字节
 
上一个 下一个