PyQt - Widget QLineEdit

QLineEditobjeto é o campo de entrada mais comumente usado. Ele fornece uma caixa na qual uma linha de texto pode ser inserida. Para inserir texto de várias linhas,QTextEdit objeto é obrigatório.

A tabela a seguir lista alguns métodos importantes da classe QLineEdit -

A seguir estão os métodos mais comumente usados ​​de QLineEdit.

Sr. Não. Métodos e Descrição
1

setAlignment()

Alinha o texto de acordo com as constantes de alinhamento

Qt.AlignLeft

Qt.AlignRight

Qt.AlignCenter

Qt.AlignJustify

2

clear()

Apaga o conteúdo

3

setEchoMode()

Controla a aparência do texto dentro da caixa. Os valores do ecomode são -

QLineEdit.Normal

QLineEdit.NoEcho

QLineEdit.Password

QLineEdit.PasswordEchoOnEdit

4

setMaxLength()

Define o número máximo de caracteres para entrada

5

setReadOnly()

Torna a caixa de texto não editável

6

setText()

Define o texto de maneira programática

7

text()

Recupera texto no campo

8

setValidator()

Define as regras de validação. Os validadores disponíveis são

QIntValidator - Restringe a entrada ao inteiro

QDoubleValidator - Parte da fração do número limitada a decimais especificados

QRegexpValidator - Verifica a entrada em relação a uma expressão Regex

9

setInputMask()

Aplica máscara de combinação de caracteres para entrada

10

setFont()

Mostra o conteúdo do objeto QFont

O objeto QLineEdit emite os seguintes sinais -

A seguir estão os métodos de sinais mais comumente usados.

Sr. Não. Métodos e Descrição
1

cursorPositionChanged()

Sempre que o cursor se move

2

editingFinished()

Quando você pressiona 'Enter' ou o campo perde o foco

3

returnPressed()

Quando você pressiona 'Enter'

4

selectionChanged()

Sempre que o texto selecionado muda

5

textChanged()

À medida que o texto na caixa muda por entrada ou por meios programáticos

6

textEdited()

Sempre que o texto é editado

Exemplo

Os objetos QLineEdit neste exemplo demonstram o uso de alguns desses métodos.

Primeiro campo e1mostra o texto usando uma fonte personalizada, no alinhamento correto e permite a entrada de inteiros. O segundo campo restringe a entrada a um número com 2 dígitos após o ponto decimal. Uma máscara de entrada para inserir o número de telefone é aplicada no terceiro campo. sinal textChanged () no campoe4 está conectado ao método de slot textchanged ().

Conteúdo de e5são ecoados na forma de senha, pois sua propriedade EchoMode é definida como Senha. Seu sinal de edição finalizada () é conectado ao método presenter (). Assim, uma vez que o usuário pressione a tecla Enter, a função será executada. O campoe6 mostra um texto padrão, que não pode ser editado porque está configurado para somente leitura.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()
	
   e1 = QLineEdit()
   e1.setValidator(QIntValidator())
   e1.setMaxLength(4)
   e1.setAlignment(Qt.AlignRight)
   e1.setFont(QFont("Arial",20))
	
   e2 = QLineEdit()
   e2.setValidator(QDoubleValidator(0.99,99.99,2))
	
   flo = QFormLayout()
   flo.addRow("integer validator", e1)
   flo.addRow("Double validator",e2)
	
   e3 = QLineEdit()
   e3.setInputMask('+99_9999_999999')
   flo.addRow("Input Mask",e3)
	
   e4 = QLineEdit()
   e4.textChanged.connect(textchanged)
   flo.addRow("Text changed",e4)
	
   e5 = QLineEdit()
   e5.setEchoMode(QLineEdit.Password)
   flo.addRow("Password",e5)
	
   e6 = QLineEdit("Hello Python")
   e6.setReadOnly(True)
   flo.addRow("Read Only",e6)
	
   e5.editingFinished.connect(enterPress)
   win.setLayout(flo)
   win.setWindowTitle("PyQt")
   win.show()
	
   sys.exit(app.exec_())

def textchanged(text):
   print "contents of text box: "+text
	
def enterPress():
   print "edited"

if __name__ == '__main__':
   window()

O código acima produz a seguinte saída -

contents of text box: h
contents of text box: he
contents of text box: hel
contents of text box: hell
contents of text box: hello
editing finished