티스토리 뷰

Python/PyQt5

PyQt5: QLineEdit 사용하기 2

editor752 2019. 11. 21. 18:47

2019/11/21 - [Python/PyQt5] - PyQt5: QLineEdit 사용하기 1

PyQt5: QLineEdit 사용하기 2

이번에는 setEchoMode() 메서드에 대해 알아보자. setEchoMode()는 아래와 같이 4가지 모드를 설정할 수 있으며 각 모드에 따라 QLineEdit에 문자열을 입력할 때 보여지는 문자열의 모습이 달라진다.

                         상수                                                                  값                                                             설명

QLineEdit.Normal

0

입력된 문자를 표시합니다. (기본값)

QLineEdit.NoEcho

1

문자열을 표시하지 않습니다. 이 설정은 비밀번호의 글자수도 공개하지 않을 때 유용합니다.

QLineEdit.Password

2

입력된 문자 대신 비밀번호 가림용 문자를 표시합니다.

QLineEdit.PasswordEchoOnEdit

3

입력할 때만 문자를 표시하고, 수정 중에는 다른 문자를 표시합니다.

 

각 모드를 적용한 코드는 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit
 
 
class MyApp(QWidget):
 
    def __init__(self):
        super().__init__()
 
        self.initUI()
 
 
    def initUI(self):
 
        self.lbl = QLabel(self)
        self.lbl.move(6040)
 
        #  QLineEdit 인스턴스인 qle를 생성
        qle1 = QLineEdit(self)
        qle1.move(60100)
        #  입력모드를 Normal로 설정: 입력된 문자를 표시합니다. (기본값)
        qle1.setEchoMode(QLineEdit.Normal)
 
        qle2 = QLineEdit(self)
        qle2.move(60150)
        #  입력모드를 NoEcho로 설정: 문자열을 표시하지 않습니다. 이 설정은 비밀번호의 글자수도 공개하지 않을 때 유용합니다.
        qle2.setEchoMode(QLineEdit.NoEcho)
 
 
        qle3 = QLineEdit(self)
        qle3.move(60200)
        #  입력모드를 Password로 설정: 입력된 문자 대신 비밀번호 가림용 문자를 표시합니다.
        qle3.setEchoMode(QLineEdit.Password)
 
        qle4 = QLineEdit(self)
        qle4.move(60250)
        #  입력모드를 PasswordEchoOnEdit로 설정: 입력할 때만 문자를 표시하고, 수정 중에는 다른 문자를 표시합니다.
        qle4.setEchoMode(QLineEdit.PasswordEchoOnEdit)
 
        #  qle의 텍스트가 바뀌면, onChanged() 메서드를 호출하고 바뀐 문자열을 전달한다.
        qle1.textChanged[str].connect(self.onChanged)
        qle2.textChanged[str].connect(self.onChanged)
        qle3.textChanged[str].connect(self.onChanged)
        qle4.textChanged[str].connect(self.onChanged)
 
        self.setWindowTitle('QLineEdit')
        self.setGeometry(300300300400)
        self.show()
 
 
    def onChanged(self, text):
 
        #  lbl의 텍스트를 text의 문자열로 바꾸고
        self.lbl.setText(text)
        #  라벨의 크기를 조정
        self.lbl.adjustSize()
 
 
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())
 
cs

실행 화면

QLineEdit.Normal

 

QLineEdit.NoEcho
QLineEdit.Password

 

QLineEdit.PasswordEchoOnEdit: 입력 중

 

QLineEdit.PasswordEchoOnEdit: 편집 중


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
11-25 14:15