Диалоги в PyQt

Мой профиль на GitHub, где будет код этой статьи и предыдущих
Первая статья про PyQt - Как научиться писать на PyQt?
Вторая статья про PyQt - Создаем планировщик на PyQt
Третья статья про PyQt - Текстовый редактор на PyQt

Одна из главных тем в PyQt - это диалоговые окна. В этом посте я вам расскажу как создавать диалоговые окна, как задавать через них вопросы к пользователю, как получать информацию из диалоговых окон.

Пишем базовую разметку для PyQt.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Далее создадим кнопку при клике на которую будет вызываться QInputDialog

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

При запуске программы нам высветится кнопка, если мы на неё нажмем, то появится диалоговое окно, где будет QLineEdit и две кнопки ok и cancel. Если после ввода текста мы нажмем на ok, то текст нашей кнопки преобразуется, если же нажмем cancel, то текст останется прежним.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Теперь спросим сколько пользователю лет и при неверных данных будем выдавать ошибку с помощью QMessageBox.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

В этом примере мы берем возраст, делаем проверку, чтобы он был не меньше 5. Если же возраст меньше 5, то мы создаем QMessageBox и выводим его на экран.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Я бы остановился на способах вывода информации в диалогах, но как по мне это не очень интересное занятие, поэтому я сделаю ремарку из документации.

def getDouble (parent, title, label, value, minValue, maxValue, decimals, flags, step)
def getInt (parent, title, label[, value=0[, minValue=-2147483647[, maxValue=2147483647[, step=1[, flags=Qt.WindowFlags()]]]]])
def getItem (parent, title, label, items[, current=0[, editable=true[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]]])
def getMultiLineText (parent, title, label[, text=””[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]])
def getText (parent, title, label[, echo=QLineEdit.Normal[, text=””[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]]])

Сейчас сделаем программу, которая с помощью диалогового окна запрашивает путь к файлу и выводит ошибку, если такого файла нет.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Мы открываем файл, если он есть и выводим содержимое в textBrowser. Если же такого файла нет, то мы выводим ошибку.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Программирование на python

647 постов11.8K подписчиков

Добавить пост

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу