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)
可以作为一个开始。
我需要使用 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)
可以作为一个开始。