Основы easygui python. Часть 1

—

от автора

Это статья об основах модуля easygui для языка Python. Рекомендую использовать Python ветки 2-x, так как это позволит совместить табуляцию и пробелы. Конечно же, данный модуль не для написания программ, а в качестве дополнения. Статья написана для самых начинающих, поэтому будет много комментариев.

-1. Импортировать easygui

import easygui from easygui import * #Импортируем всё. 

0. Привет, мир!

Напишем Hello, world! на easygui.

msgbox(msg, title, ok_button, image, root) #Все параметры (args) 

Давайте создадим переменные(можно и без них, но так понятнее).

msg = "Hello, world!" #Сообщение title = "Hello, world!" #Шапка button = "Ответить" #Кнопка image = "your_image" #У меня нету подходящего изображения 

Теперь нам будет гораздо проще сделать сообщение.

msgbox(msg, title, button) #У меня нету картинки 

Теперь у Вас появится вот такое окошко:

image

Мы написали Hello, world! Теперь можно продвинуться дальше.

1. Ввод данных в inputbox и запись данных в переменные

Внимание enterbox записывает в переменную только один символ! Теперь можно сделать input.

n = input() #Стандартный ввод. 

С помощью easygui тоже можно сделать ввод и записать его в переменную. Для этого есть функция enterbox. Далее создадим функцию vvod и сразу переменные.

def vvod():     global var1 #Переменная куда будем записывать данные.     msg = "Введите цифру"     title = "Ввод переменной" #Шапочка. 

Теперь нам нужно создать список, чтобы создать поля(Вы также можете сделать несколько полей ввода).

Добавим в функцию vvod следующее:

fieldValues2 = enterbox(msg, title) var1 = fieldValues2[0] 

Теперь появится такое окошко при запуске:

image

Вывод переменной на экран msgbox

msg = "Вы ввели " + str(var1) # Str + Int = Error msgbox(msg, "Возврат", "Я понял!") #Все параметры 

2. Да или нет?

В easygui есть функция ynbox(YesNoBox). Эта функция позволяет выбрать пользователю его дальнейшие действия. К примеру «Хотите ли вы продолжить?» и выбор варианта из предложенных. Стандартное «Да» и «Нет», а вот функционал других кнопок вы должны сделать сами(В параметрах только эти «default_choice» и «cancel_choice»). Можно забиндить их на клавиши и сделать несколько выборов.

Зададим переменные:

msg = "Вы хотите продолжить?" title = "Важно!" choices = ("[<F1>]Да", "[<F2>]Нет") #Выборы и их бинды 

Ну а вот, что означает «Да», а что означает «Нет» пропишем сами.

ynbox(msg, title, choices, image=None, default_choice="[<F1>]Да", cancel_choice="[<F2>]Нет") #Что означает "Да", а что "Нет". 

Появится такое окошко:

image

Запись в переменную аналогична inputbox.

3. Авторизация. Не SQL!

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

def login_procedure():     while True:         msg = "Введите логин и пароль"         title = "Авторизация"         fieldNames = ["Логин", "Пароль"] #Всё как в прошлый раз, не правда ли? 

Цикл нужен, чтобы если пользователь ошибся, ему не пришлось перезапускать программу. Также, при нажатии кнопки «Отмена» программа крашится. Поэтому нам будет нужен try.

fieldValues = multpasswordbox(msg, title, fieldNames) #Чтобы окна появились         try: #Если получится             USERNAME, PASSWORD = fieldValues[0], fieldValues[1]         except: #Если не получится, то вызовем функцию заново.             login_procedure() #Ну про отмену наверное слышали.             exit(0) #Чтобы не появилось второе окно. 

Теперь нам осталось задать правильный логин и пароль(Можно и в списке, и в SQL, но в этой статье говорится об основах easygui):

#Проверяем правильность.         if USERNAME == "login" and PASSWORD == "passtogo":             msgbox("Вход выполнен!")             break #Выходим из цикла         else:             msgbox("Неверный логин или пароль") 

Теперь мы всё сделали. Пару скриншотов:

image

image

image

Надеюсь теперь Вам стало всё понятно, и статья принесла Вам пользу. Спасибо за просмотр! Если у Вас есть какой-то вопрос, то напишите об этом в комментарии.

ссылка на оригинал статьи https://habr.com/ru/post/501286/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *