我有以下代码(使用QT 4.8编写的富文本编辑器),我正在处理:
bool TextEdit::fileSaveAs()
{
QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."),
QString(), tr("ODT document (*.odt);;HTML-Files (*.htm *.html)"), 0, QFileDialog::DontUseNativeDialog );
if (fn.isEmpty())
return false;
if (! fn.endsWith(".txt", Qt::CaseInsensitive) || (fn.endsWith(".odt", Qt::CaseInsensitive) || fn.endsWith(".htm", Qt::CaseInsensitive) || fn.endsWith(".html", Qt::CaseInsensitive)) )
fn += ".odt"; // default
setCurrentFileName(fn);
return fileSave();
}
保存对话框窗口允许在* .odt和* .html扩展名之间进行选择;但是,默认情况下,始终设置* .odt扩展名(请参阅fn + =" .odt")。 我知道我可以将此更改为html,但我的目标是摆脱代码中的强制扩展集,并使用在保存对话框窗口中选择的扩展名保存文档:
http://funkyimg.com/i/2efhs.png
我怎样才能做到这一点?有人可以建议我一些实际的例子,考虑到我是一个关于编码的新手吗?
答案 0 :(得分:1)
使用另一个带有selectedfilter参数的构造函数,结果将是
QString selectedFilter;
QString fn = QFileDialog::getSaveFileName
(this,
tr("Save as..."),
QString(),
tr("ODT document (*.odt);;HTML-Files (*.htm *.html)"),
0,
QFileDialog::DontUseNativeDialog,
&selectedFilter);