QFileDialog:选择文件后添加后缀

QFileDialog: add suffix after selecting file

本文关键字:添加 后缀 文件 选择 QFileDialog      更新时间:2023-10-16

QFileDialog::AcceptSave接受模式下,我需要在QFileDialog中为所选文件名添加后缀。例如,在QFileDialog中选择"1.txt"文件后,编辑应该选择"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并订阅QFileDialogs信号

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

这可能是一个开始。