Диалоги в PyQt
Мой профиль на GitHub, где будет код этой статьи и предыдущих
Первая статья про PyQt - Как научиться писать на PyQt?
Вторая статья про PyQt - Создаем планировщик на PyQt
Третья статья про PyQt - Текстовый редактор на PyQt
Одна из главных тем в PyQt - это диалоговые окна. В этом посте я вам расскажу как создавать диалоговые окна, как задавать через них вопросы к пользователю, как получать информацию из диалоговых окон.
Пишем базовую разметку для PyQt.
Далее создадим кнопку при клике на которую будет вызываться QInputDialog
При запуске программы нам высветится кнопка, если мы на неё нажмем, то появится диалоговое окно, где будет QLineEdit и две кнопки ok и cancel. Если после ввода текста мы нажмем на ok, то текст нашей кнопки преобразуется, если же нажмем cancel, то текст останется прежним.
Теперь спросим сколько пользователю лет и при неверных данных будем выдавать ошибку с помощью QMessageBox.
В этом примере мы берем возраст, делаем проверку, чтобы он был не меньше 5. Если же возраст меньше 5, то мы создаем QMessageBox и выводим его на экран.
Я бы остановился на способах вывода информации в диалогах, но как по мне это не очень интересное занятие, поэтому я сделаю ремарку из документации.
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]]]])
Сейчас сделаем программу, которая с помощью диалогового окна запрашивает путь к файлу и выводит ошибку, если такого файла нет.
Мы открываем файл, если он есть и выводим содержимое в textBrowser. Если же такого файла нет, то мы выводим ошибку.
Программирование на python
647 постов11.8K подписчиков
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу