python pyqt5 添加文件名到getSaveFileName

python pyqt5 add file name to getSaveFileName

我正在尝试为 QFileDialog() 添加默认名称,如下图所示。

这是我得到的(无文件名)

这就是我想要实现的,而无需手动输入,我想通过 file_name throw 一个函数并在那里显示该名称。

这是我正在尝试使用的代码:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5 import *
import sys
class mainwindowUI(QMainWindow):
    def __init__(self):
        super(mainwindowUI, self).__init__()
        self.exportFiles('test.mp3')
    def exportFiles(self,file_name):
        filename, _ = QFileDialog.getSaveFileName(self, "Save audio file", "", "Audio Files (*.mp3)")
        if filename:
            print(filename)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = mainwindowUI()
    app.exec_()

我尝试添加选项:

filename, _ = QFileDialog.getSaveFileName(self, "Save audio file", "", "Audio Files (*.mp3)", options=QFileDialog.setLabelText(file_name))

但这是不正确的,我不知道如何让它工作...

有人知道如何添加文件名来保存文件对话框吗?

第三个参数表示初始名称:

def exportFiles(self, file_name):
    default_dir ="/home/qt_user/Documents"
    default_filename = os.path.join(default_dir, file_name)
    filename, _ = QFileDialog.getSaveFileName(
        self, "Save audio file", default_filename, "Audio Files (*.mp3)"
    )
    if filename:
        print(filename)

首先创建一个save-as动作

self.saveas=QAction(QtGui.QIcon('saveas.png'),'save-as')

将 save-as 操作添加到工具栏

toolbar=self.addToolbar('toolbar');
toolbar.addAction(self.saveas);

将此作为您的 QFileDialog 代码的子

Fn, _=QFileDialog.getSaveFileName(self,'export pdf',file_name,'Pdf files(.pdf);;All files()');

将信号连接到插槽时执行此操作

Self.Saveas.toggled.connect(self.exportfiles('name of default file');