티스토리 뷰

Python/PyQt5

PyQt5: 여러 위젯 사용하기 1

editor752 2019. 11. 30. 17:53

이번은 이제까지 공부한 위젯 몇 개를 함께 사용해 보도록 하자. QPushButton, QLineEdit, QLabel를 사용하였다.

QLineEdit 위쳇으로 입력을 받은 내용을 QLabel 위젯에 표시하는 프로그램이다, 문자열의 치환은 QLineEdit 입력창에서 엔터를 입력하는 경우와 옆의 QPushButton을 누르는 경우에 빌생한다.

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
import sys
from PyQt5.QtWidgets import *
 
class MyApp(QWidget):
 
    def __init__(self):
 
        super().__init__()
        self.initUI()
 
 
    def initUI(self):
 
        # QLabel 인스턴스인 lbl을 생성하고 문자열을 "NULL"로 초기화한다.
        self.lbl = QLabel("NULL", self)
        # 위치를 x = 60, y = 40으로 지정
        self.lbl.move(6040)
 
        # QLineEdit 인스턴스인 qle를 생성한다.
        self.qle = QLineEdit(self)
        # 위치를 x = 60, y = 70으로 지정
        self.qle.move(6070)
 
        # QPushButton 인스턴스인 btn을 생성하고 문자열을 "Change Label Text"로 초기화한다.
        btn = QPushButton("Change Label Text", self)
        # 위치를 x = 200, y = 70으로 지정
        btn.move(20070)
        btn.setCheckable(True)
 
        # 버튼 btn을 클릭하는 시그널이 발생하면 changeLabelText() 슬롯을 호출한다.
        btn.clicked.connect(self.changeLabelText)
        # qle의 입력 과정에서 엔터 입력 시그널이 발생하면 changeLabelText() 슬롯을 호출한다.
        self.qle.returnPressed.connect(self.changeLabelText)
 
        self.setWindowTitle("QLineEdit")
        self.setGeometry(300300400150)
 
    # 사용자 지정 함수
    def changeLabelText(self):
 
        # 라벨 lbl의 문자열을 qle의 입력값으로 설정한다.
        self.lbl.setText(self.qle.text())
        # 입력 길이에 맞추어 라벨 lbl의 길이를 조절한다.
        self.lbl.adjustSize()
        # qle 입력을 비운다.
        self.qle.setText("")
 
 
if __name__ == __name__:
 
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())
 
cs

실행화면

QPushButton을 눌러서 수정

 

QLineEdit에서 enter를 눌러 실행

2019/12/03 - [Python/PyQt5] - PyQt5: 여러 위젯 사용하기 2-1(윈도우 디자인 편)


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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-29 08:59