@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 это первое что я сделал
По задумке это простая программа регистрации спрашивающая у пользователя логин и пароль ,но с критериями
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
SoreMix
@SoreMix
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
Миллиардер. Честно, 100 пистонов!
Этот код скорее всего для Python 2.
Ответ написан
Ваш ответ на вопрос

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

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