Как предварительно заполнить имя файла в QFileDialog? - PullRequest
0 голосов
/ 27 сентября 2018

Добрый день,

Я создал программу для проведения измерений и нанесения их на график.Затем пользователь может экспортировать данные в формате .csv или в виде графика .png в произвольном месте с произвольным именем благодаря QFileDialog.Ниже приведен код, любой может использовать его для себя.

Мой вопрос: как предварительно заполнить имя файла в диалоговом окне , чтобы пользователь все еще мог указатьпроизвольное имя, но если им все равно, оно уже заполнено экспериментальными параметрами.Заранее спасибо.

def export_picture(self):
    """Grabs the plot on the interface and saves it in a .png file at a custom location."""

    # Setup a file dialog.
    MyDialog = QFileDialog()
    MyDialog.setWindowTitle("Select a location to save your graph.")
    MyDialog.setAcceptMode(QFileDialog.AcceptSave)
#   MyDialog.a_method_to_prefill_the_file_name("name") <-- ?
    MyDialog.exec_()

    # Abort the function if somebody closed the file dialog without selecting anything.
    if len(MyDialog.selectedFiles()) == 0:
        return

    # Save the file and notify the user.
    CompleteName = MyDialog.selectedFiles()[0] + ".png"
    self.ui.Graph.figure.savefig(fname=CompleteName, dpi=254, format="png")
    Directory, File = os.path.split(FileAndPath)
    print('Graph exported as "%s.png" in the folder "%s".' %(File, Directory))

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать getSaveFileName.

import sys
from PyQt5 import QtWidgets
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    button = QtWidgets.QPushButton('Get File Name...')
    button.show()

    def _get_file_name():
        save_file, _ = QtWidgets.QFileDialog.getSaveFileName(button, "Save File...", 'foo.txt')
        print(f'save_file = {save_file}')

    button.clicked.connect(_get_file_name)

    sys.exit(app.exec_())
...