Создание стандартных диалоговых окон в Qt


Использование стандартных окон значительно ускоряет разработку тех приложений, в которых необходимо использовать стандартные диалоговые окна выбора файлов, шрифта, цвета и т. д. Вместо того, чтобы тратить время на разработку своих собственных классов, можно воспользоваться готовыми классами библиотеки Qt. К достоинствам стандартных диалоговых окон можно отнести целостность пользовательского интерфейса, так как вид окон, во всех приложениях использующих их, будет один и тот же.

Диалоговое окно выбора файлов QFileDialog

Оно предназначено для выбора одного или нескольких файлов, а также файлов, находящихся на удаленном компьютере, включает в себя возможность переименования файлов и создания директорий. Класс QFileDialog предоставляет реализацию диалогового окна выбора файлов и отвечает за создание и работоспособность сразу трех диалоговых окон. Одно из них позволяет осуществлять выбор файла для открытия, второе – предназначено для выбора пути и имени файла для его сохранения, а третье — предназначено для выбора директории. Класс QFileDialog унаследован от класса QDialog. Его определение находится в файле QFileDialog.

Этот класс предоставляет следующие статические методы:

  • getOpenFileName() создает диалоговое окно выбора одного файла. Этот метод возвращает значение типа QString, содержащее имя и путь выбранного файла;

Создание диалогового окна выбора файла

  • getOpenFileNames() создает диалоговое окно выбора нескольких файлов. Возвращает список строк типа QStringList, содержащих пути и имена файлов;
  • getSaveFileName() создает диалоговое окно сохранения файла. Возвращает имя и путь файла в строковой переменной типа QString;
  • getExistingDirectory() создает окно выбора директории. Этот метод возвращает значение типа QString, содержащее имя и путь выбранной директории.
  • Первым параметром этих методов является указатель на объект-предок, вторым — передается текст заголовка окна, третьим — строка, представляющая собой рабочую директорию.

Вызов метода getOpenFileName() запустит диалоговое окно открытия файла. Четвертый параметр, передаваемый в этот метод, представляет собой фильтр (или маску), задающий расширение файлов. Например:


QString str = QFileDialog::getOpenFileName(0, "Open Dialog", "", "*.cpp *.h"); 

При помощи метода getExistingDirectory() можно предоставить пользователю возможность выбора директории. Например:


QString str = QFileDialog:rgetExistingDirectory(0, "Directory Dialog", "");

Создание диалогового окна выбора директории

Читать далее: Диалоговое окно настройки принтера в Qt