QFileDialog:选择文件后添加后缀

QFileDialog: add suffix after selecting file

我需要使用 QFileDialog::AcceptSave 接受模式为 QFileDialog 中的 selected 文件名添加后缀。例如,在 QFileDialog 编辑 selecting "1.txt" 文件后应该是 select "1_suffix.txt"。它应该在文件接受之前添加,因为我需要用户能够在应用文件之前更改文件名。

代码:

m_dialog.setAcceptMode(QFileDialog::AcceptSave);
m_dialog.setWindowModality(Qt::WindowModal);
m_dialog.setFileMode(QFileDialog::AnyFile);
m_dialog.setDefaultSuffix("_suffix");
if(m_dialog.exec() == QFileDialog::Accept)
{
    setPath(m_dialog.selectedFiles()[0]);
}

通常,QFileDialog 会显示平台文件对话框。要获得您想要的行为,您需要使用特定于平台的机制; Qt 没有实现这样的功能。

如果您使用的是非本机文件对话框,您可以检查其结构以找到您想要的小部件,过滤它们的相关事件,并注入您需要的行为。

尝试扩展 QFileDialog 并订阅 QFileDialog 信号

  void fileSelected(QString file)
  void currentChanged(QString path)

可以作为一个开始。