Qt - okno dialogowe Save file

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2372 razy

Okno dialogowe Save file należy do standardowych okien systemowych i jest często wykorzystywane przez programy z graficznym interfejsem użytkownika. Do wyświetlenia takiego okna często wystarczy statyczna metoda getSaveFileName klasy QFileDialog. Oto przykładowy kod:

QString filePath = QFileDialog::getSaveFileName( this, // wskaźnik na okno rodzica (może być 0, gdy rodzica nie ma) "Save text file", // text belki tytułowej okna dialogowego QDir::homePath(), // ścieżka startowa "Graphics file (*.gif *.jpg *.jpeg *.png)" // filtr listy plików );

Ten sam efekt można uzyskać tworząc obiekt klasy QFileDialog i odpowiednio go inicjalizując. Oto przykład:

QFileDialog saveFile(this); saveFile.setFileMode(QFileDialog::AnyFile); // ta opcja sprawia, że użytkownik może zaznaczyć tylko jeden plik (nawet nieistniejący) saveFile.setNameFilter("Graphics file (*.gif *.jpg *.jpeg *.png)"); saveFile.setAcceptMode(QFileDialog::AcceptSave); QStringList fileNames; if(saveFile.exec()){ fileNames = saveFile.selectedFiles(); }

Jeżeli plik istnieje to program zapyta, czy na pewno chcesz go nadpisać.

Możliwe jest zastosowanie wielu grup filtrowania oto przykład:

saveFile.setNameFilter("Graphics file (*.gif *.jpg *.jpeg *.png);;GIF (*.gif);;JPG (*.jpg *.jpeg);;PNG (*.png)");

W rezultacie w oknie dialogowym Save file dostępna będzie rozwijana lista z poniższego rysunku.

Widok listy filtrów dostępnych w oknie Open file
Rys. 1
Widok listy filtrów dostępnych w oknie Open file po zastosowaniu filtru z powyższego kodu
Strony powiązane
strony powiązane
  1. doc.qt.io/qt-5/qfiledialog.html#getOpenFileName - opis klasy QFileDialog na stronie dokumentacji Qt
Propozycje książek