Диалоговые окна (диалоги) являются неотъемлемой частью большинства современных графических приложений.



Диалоги используются для ввода и изменения данных, изменения настроек приложения, и так далее.



QInputDialog - простой удобный диалог для получения единственного значения от пользователя. Введённое значение может быть строкой.



text, type = QInputDialog.getText(self, 'Input Dialog example', 'Enter your value:')

Диалог возвращает введённый текст и логическое значение. Если мы нажимаем кнопку «ОК», то логическое значение является правдой.

Выводим это значение в текстовое поле по нажатию ок.

if type is True: self.some_text_field.setText(str(text))

QColorDialog - виджет диалога для выбора цветовых значений.

col = QColorDialog.getColor()

диалог возвращает объект типа QColor


Так как цвет может быть некорректный, например, если нажать в диалоге кнопку cancel необходимо проверить его на корректность с помощью метода isValid

if col.isValid(): self.collor_button.setStyleSheet("QPushbutton { background-color: %s }" % col.name())

После проверки корректности цвета используя qss устанавливаем цвет кнопки по выбранному цвету.

QFontDialog - это диалог для выбора параметров шрифта.

font, ok = QFontDialog.getFont()

Возвращает объект Qfont и тип нажатой кнопки

if ok is true: self.some_lable.setFont(font)

Если нажата кнопка ок, то устанавливаем шрифт метки

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

fname = QFileDialog.getOpenFileName(self, 'Open file', '/init_directory')

Диалог возвращает путь(список с путями) к выбранному файлу, и использованный тип для фильтра.

Если нужно выбрать несколько файлов, то используем метод getOpenFileNames Если папку, то используем getOpenFolder, ecли нужно выбрать существующий либо не существующий файл для того, чтобы сохранить туда информацию используем метод getSaveFileName.