@DILDIS

Не открывается окно Tkinter python?

from tkinter import *

screen = Tk()

screen.resizable( width = False, height = False )
screen.geometry( '410x230' )
screen.title( 'Регистрация' )


#КНОПКА

enter = Button( text = 'Ввод', font = 'Consolas', width = 18 )

#Надписи

Tname = Label( text = 'Введите имя пользователя:', font = 'Consolas' )
Tpassword = Label( text = 'Придумайте пароль: ', font = 'Consolas' )
#цикл
reger = True
while reger:
            #проверка
    def Ввод ( event ):
        login_check()
        password_check()
        print("логин + пароль" + str(N ) + str(P))
        if login_p == password_p:
            vse = Label( text = 'Вы зарегистрированы ', font = 'Consolas' ) 
            reger = False
            vse.grid( row = 0, column = 1, padx = 1, pady = 1 )

    #имя
    name_entry = Entry( screen, font = 'Consolas' )
    N = name_entry.get()

    #проверка имени 
    def login_check ():
        if len(str(N)) > 20:
            l20 = Label( text = 'это имя слишком длинное', font = 'Consolas' )
            l20.grid( row = 9, column = 0, padx = 1, pady = 1 )
            print("l1")# Эта строка что бы я видел сработала ли функция
            login_p = 9
        elif len(str(N)) < 3:
            l3 = Label( text = 'это имя слишком короткое', font = 'Consolas' )
            l3.grid( row = 10, column = 0, padx = 1, pady = 1 )
            print("l2")# Эта строка что бы я видел сработала ли функция
            login_p = 10
        else: 
            print("l3")# Эта строка что бы я видел сработала ли функция 
            login_p = 1

    #password

    password_entry = Entry( screen, font = 'Consolas', show = '*' )
    P = password_entry.get()

    def password_check ():
        if len(str(P)) < 5:
            p1 = Label ( text = "Слишком короткий пароль", font = 'Consolas' ) 
            p1.grid( row = 11, column = 0, padx = 1, pady = 1 )  
            print("1")# Эта строка что бы я видел сработала ли функция
            password_p = 2   
        elif str(P) == "abcde":
            p2 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p2.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("2")# Эта строка что бы я видел сработала ли функция
            password_p = 3
        elif str(P) == "ABCDE":
            p3 = generateLabel ( text = "Слишком простой пароль", font = 'Consolas' )
            p3.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("3")# Эта строка что бы я видел сработала ли функция
            password_p = 4
        elif str(P) == "12345":
            p4 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p4.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("4")# Эта строка что бы я видел сработала ли функция
            password_p = 5
        elif str(P) == "123456789":
            p5 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p5.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("5")# Эта строка что бы я видел сработала ли функция
        elif str(P) == "987654321":
            p6 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p6.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("6")# Эта строка что бы я видел сработала ли функция
            password_p = 6
        elif str(P) == "абвгд":
            p7 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p7.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("7")# Эта строка что бы я видел сработала ли функция
            password_p = 7
        elif str(P) == "АБВГД":
            p8 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
            p8.grid( row = 11, column = 0, padx = 1, pady = 1 )
            print("8")# Эта строка что бы я видел сработала ли функция
            password_p = 8
        else:
            print("9")# Эта строка что бы я видел сработала ли функция
            password_p = 1

   #  расположение
Tname.grid( row = 0, column = 0, sticky = W, padx = 1, pady = 1 )
name_entry.grid( row = 0, column = 1, padx = 1, pady = 1 )
Tpassword.grid( row = 1, column = 0, sticky = W, padx = 1, pady = 1 )
password_entry.grid( row = 1, column = 1, padx = 1, pady = 1 )
enter.grid( row = 7, column = 0, padx = 1, pady = 1 )
enter.bind( '<Button-1>', Ввод )

screen.mainloop()

При попытке открыть ошибок нет ,но окно не открывается.
Я новичок в python с опытом 2 дня ,а в Tkinter это первое что я сделал
По задумке это простая программа регистрации спрашивающая у пользователя логин и пароль ,но с критериями
  • Вопрос задан
  • 926 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Код не доходит до screen.mainloop(), потому что вы вызвали зачем-то бесконечный цикл
reger = True
while reger:

Убирайте его.

Должно выглядеть как-то так:
from tkinter import *



screen = Tk()

screen.resizable( width = False, height = False )
screen.geometry( '410x230' )
screen.title( 'Регистрация' )



def Ввод ( event ):

    login_p = name_entry.get()
    password_p = password_entry.get()

    login_check()
    password_check()
    print("логин + пароль" + str(login_p ) + str(password_p))
    if login_p == password_p:
        vse = Label( text = 'Вы зарегистрированы ', font = 'Consolas' ) 
        vse.grid( row = 0, column = 1, padx = 1, pady = 1 )


#проверка имени 
def login_check ():
    N = name_entry.get()
    if len(str(N)) > 20:
        l20 = Label( text = 'это имя слишком длинное', font = 'Consolas' )
        l20.grid( row = 9, column = 0, padx = 1, pady = 1 )
        print("l1")# Эта строка что бы я видел сработала ли функция
        login_p = 9
    elif len(str(N)) < 3:
        l3 = Label( text = 'это имя слишком короткое', font = 'Consolas' )
        l3.grid( row = 10, column = 0, padx = 1, pady = 1 )
        print("l2")# Эта строка что бы я видел сработала ли функция
        login_p = 10
    else: 
        print("l3")# Эта строка что бы я видел сработала ли функция 
        login_p = 1


#password
def password_check ():
    P = password_entry.get()
    if len(str(P)) < 5:
        p1 = Label ( text = "Слишком короткий пароль", font = 'Consolas' ) 
        p1.grid( row = 11, column = 0, padx = 1, pady = 1 )  
        print("1")# Эта строка что бы я видел сработала ли функция
        password_p = 2   
    elif str(P) == "abcde":
        p2 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p2.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("2")# Эта строка что бы я видел сработала ли функция
        password_p = 3
    elif str(P) == "ABCDE":
        p3 = generateLabel ( text = "Слишком простой пароль", font = 'Consolas' )
        p3.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("3")# Эта строка что бы я видел сработала ли функция
        password_p = 4
    elif str(P) == "12345":
        p4 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p4.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("4")# Эта строка что бы я видел сработала ли функция
        password_p = 5
    elif str(P) == "123456789":
        p5 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p5.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("5")# Эта строка что бы я видел сработала ли функция
    elif str(P) == "987654321":
        p6 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p6.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("6")# Эта строка что бы я видел сработала ли функция
        password_p = 6
    elif str(P) == "абвгд":
        p7 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p7.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("7")# Эта строка что бы я видел сработала ли функция
        password_p = 7
    elif str(P) == "АБВГД":
        p8 = Label ( text = "Слишком простой пароль", font = 'Consolas' )
        p8.grid( row = 11, column = 0, padx = 1, pady = 1 )
        print("8")# Эта строка что бы я видел сработала ли функция
        password_p = 8
    else:
        print("9")# Эта строка что бы я видел сработала ли функция
        password_p = 1

#КНОПКА
enter = Button( text = 'Ввод', font = 'Consolas', width = 18 )

name_entry = Entry( screen, font = 'Consolas' )
password_entry = Entry( screen, font = 'Consolas', show = '*' )

#Надписи
Tname = Label( text = 'Введите имя пользователя:', font = 'Consolas' )
Tpassword = Label( text = 'Придумайте пароль: ', font = 'Consolas' )

#  расположение
Tname.grid( row = 0, column = 0, sticky = W, padx = 1, pady = 1 )
name_entry.grid( row = 0, column = 1, padx = 1, pady = 1 )
Tpassword.grid( row = 1, column = 0, sticky = W, padx = 1, pady = 1 )
password_entry.grid( row = 1, column = 1, padx = 1, pady = 1 )
enter.grid( row = 7, column = 0, padx = 1, pady = 1 )
enter.bind( '<Button-1>', Ввод )

screen.mainloop()

Конечно, есть много проблемных мест, но это уже самому исправлять
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Этот код скорее всего для Python 2.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы