Ir para conteúdo
Fórum Script Brasil
  • 0

Mascara em campo de Edit usando wx.textCtrl


Renato Python

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

Eu já fiz isso limitando os caracteres que podem ser digitados, através do evento EVT_CHAR. O código é algo assim:

def OnChar(self, evento):
    validos = ["0", "1",  "2", "3", "4", "5", "6", "7", "8", "9", chr(8)]

    try:
        c = chr(evento.GetKeyCode())
    except Exception, e:
        c = chr(0)
            
    if c in validos:
        evento.Skip()
E basta anexá-lo ao evento wx.EVT_CHAR através do método Bind do controle:
Text1.Bind(wx.EVT_CHAR, self.OnChar)

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Renato --

Bah cara valeu!

Funcionou aqui! e usando o teu código fiz uma classe que eu passo a mascara e ele se acha! vou cola o código abaixo.

def OnKeyChar(self, event):
        keyCode = event.GetKeyCode()
        iMask = len(self.getValue())
        char = self.getValue()
        
        if keyCode == wx.WXK_DELETE or keyCode == wx.WXK_HOME or keyCode == wx.WXK_INSERT or keyCode == wx.WXK_LEFT or keyCode == wx.WXK_RIGHT or keyCode == 8:
            event.Skip()
            return False
        
        if iMask >= len(self.mask):
            return False
        
        # Testa se a mascara deve conter uma letra
        if self.mask[iMask] == '9' or self.mask[iMask] == '#':
            if self.mask[iMask] == '#':
                # testa se o caracter digitado é uma letra
                if (keyCode >= 65 and keyCode <= 90) or (keyCode >= 97 and keyCode <= 122):
                    keyChar = chr(keyCode)
                    event.Skip()
            # Testa se a mascara deve conter um numero
            if self.mask[iMask] == '9':
                # Teste se o caracter digitado é um numero
                if (keyCode >= 48 and keyCode <= 57):
                    keyChar = chr(keyCode)
                    event.Skip()
        else:
            if char != '':
                self.AppendText(self.mask[iMask] + chr(keyCode))

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...