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.