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