Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2505 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
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.