问题描述
我正尝试为QFileDialog()
添加一个默认名称,如下图所示。
这就是我得到的(没有文件名)
这是我想要实现的,而无需手动输入,我想通过file_name
抛出一个函数,并在那里显示该名称。
这是我试图使之起作用的代码:
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');