python pyqt5将文件名添加到getSaveFileName

python pyqt5将文件名添加到getSaveFileName,python,pyqt5,qfiledialog,Python,Pyqt5,Qfiledialog,我正在尝试为QFileDialog()添加一个默认名称,如下图所示 这是我得到的(没有文件名) 这就是我想要实现的,不需要手动输入,我想要传递文件名抛出一个函数,并让该名称显示在那里。 这是我试图使之工作的代码: 从PyQt5.QtWidgets导入* 从PyQt5.QtCore导入* 从PyQt5.QtGui导入* 从PyQt5导入* 导入系统 类mainwindowUI(QMainWindow): 定义初始化(自): 超级(mainwindowUI,self)。\u初始化 self.ex

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

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

这就是我想要实现的,不需要手动输入,我想要传递
文件名
抛出一个函数,并让该名称显示在那里。

这是我试图使之工作的代码:

从PyQt5.QtWidgets导入*
从PyQt5.QtCore导入*
从PyQt5.QtGui导入*
从PyQt5导入*
导入系统
类mainwindowUI(QMainWindow):
定义初始化(自):
超级(mainwindowUI,self)。\u初始化
self.exportFiles('test.mp3')
def导出文件(自身,文件名):
文件名,QFileDialog.getSaveFileName(self,“保存音频文件”,“音频文件(*.mp3)”)
如果文件名为:
打印(文件名)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=QApplication(sys.argv)
window=mainwindowUI()
app.exec()
我尝试添加选项:

filename,=QFileDialog.getSaveFileName(self,“保存音频文件”,“音频文件(*.mp3)”,options=QFileDialog.setLabelText(文件名))
但这是不正确的,我不知道如何使它工作


有人知道如何在“保存文件”对话框中添加文件名吗?

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

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)

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

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');

首先创建另存为操作

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');

这很好,但是如果我想添加一个默认目录位置怎么办?@JareBear所以你必须将默认目录与文件名连接起来这很好!这正是我想要的,非常感谢。这非常有效,但是如果我想添加默认目录位置怎么办?@JareBear所以你必须将默认目录与文件名连接起来这非常有效!正是我想要的,非常感谢。你的回答有一些重要的问题。切换的
信号仅适用于可检查的操作,因此在这种情况下应使用
触发的
信号。该行的大小写错误,括号未关闭(也不需要分号),连接的参数应该是可调用的,而在这种情况下,它将立即执行对
exportfiles
的调用,并在对话框关闭后立即返回None,从而导致崩溃,虽然QAction应该接受没有父类的构造函数,但在PyQt中(至少在5.7之前),构造函数中需要父类参数,因此通常最好在创建独立操作时添加它。您的答案有一些重要问题。切换的
信号仅适用于可检查的操作,因此在这种情况下应使用
触发的
信号。该行的大小写错误,括号未关闭(也不需要分号),连接的参数应该是可调用的,而在这种情况下,它将立即执行对
exportfiles
的调用,并在对话框关闭后立即返回None,从而导致崩溃,虽然QAction应该接受没有父类的构造函数,但在PyQt中(至少在5.7之前),构造函数中需要父类参数,因此通常在创建独立操作时最好添加它。