python pyqt5将文件名添加到getSaveFileName

问题描述

我正尝试为QFileDialog()添加一个名称,如下图所示。

这就是我得到的(没有文件名)

What I get

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

enter image description here

这是我试图使之起作用的代码

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,"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)
,

首先创建另存为操作

self.saveas=QAction(QtGui.QIcon('saveas.png'),'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');