UnboundLocalError: локальная переменная 'var', на которую ссылаются перед присваиванием - PullRequest
0 голосов
/ 01 июня 2019

Как мне работать, не помещая его в мой генератор, и как бы я ограничил типы каратеров, вводимых в логин и пароль?Только типа вы можете печатать от A до D и от 0 до 9?

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

class loginUser:

    def __init__(self, window, master=None):   
        # Criando o sistema de login
        self.wind = window
        self.wind.title("System F2T")

        self.fonteTitulo = ("Arial","10","bold")
        self.fontePadrao = ("Arial", "10")

        #Labels e campos de texto do sistema de login
        self.userLabel = Label(text="Digite seu usuário:", font=self.fontePadrao,bg="#000",fg="#FFF").place(x=27,y=60)
        self.user = Entry(textvariable=var, font=self.fontePadrao,bg="#FFF",fg="#000")
        self.user.place(x=140,y=60,width=110)

        self.senhaLabel = Label(text="Digite sua senha:", font=self.fontePadrao,bg="#000",fg="#FFF").place(x=29,y=90)
        self.senha = Entry(textvariable=var2, font=self.fontePadrao,show="*",bg="#FFF",fg="#000")
        self.senha.place(x=140,y=90,width=110)

        max_user = 1
        var = StringVar()
        var.trace("w", loginUser.limiteUsuario)
        max_senha = 4
        var2 = StringVar()
        var2.trace("w", loginUser.limiteSenha)

    def limiteUsuario(*args):
        u = var.get()
        if len(u) > 1:
            if not u[-1].isdigit(): # retirar ultimo caracter caso nao seja digito
                var.set(u[:-1])
            else: # aproveitar apenas os primeiros 5 chars
                var.set(u[:max_user])

    def limiteSenha(*args):
       s = var2.get()
       if len(s) > 4:
           if not s[-1].isdigit(): # retirar ultimo caracter caso nao seja digito
               var2.set(s[:-1])
           else: # aproveitar apenas os primeiros 5 chars
               var2.set(s[:max_senha])

if __name__ == "__main__":
    root = Tk()
    root['bg'] = "#000"
    loginUser(root)
    #Tamanho da janela
    root.geometry("330x200")
    root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...