티스토리 뷰
이 글은 Codetorial의 PyQt5, 초보자를 위한 Python GUI 프로그래밍-PyQt5 등을 학습하는 과정을 기록한 것이다. 강좌 자체는 해당 사이트를 참고하기 바란다.
2019/12/07 - [Python/PyQt5] - PyQt5: 여러 위젯 사용하기 2-2(시그널과 슬롯 연결 편)
PyQt5: 여러 위젯 사용하기 2-2(시그널과 슬롯 연결 편)
이 글은 Codetorial의 PyQt5, 초보자를 위한 Python GUI 프로그래밍-PyQt5 등을 학습하는 과정을 기록한 것이다. 강좌 자체는 해당 사이트를 참고하기 바란다. 2019/12/03 - [Python/PyQt5] - PyQt5: 여러 위젯 사..
editor752.tistory.com
2019/12/07 - [Python/PyQt5] - PyQt5: 여러 위젯 사용하기 2-3(QtDesigner 편)
PyQt5: 여러 위젯 사용하기 2-3(QtDesigner 편)
이 글은 Codetorial의 PyQt5, 초보자를 위한 Python GUI 프로그래밍-PyQt5 등을 학습하는 과정을 기록한 것이다. 강좌 자체는 해당 사이트를 참고하기 바란다. 2019/12/03 - [Python/PyQt5] - PyQt5: 여러 위젯 사..
editor752.tistory.com
PyQt5: 여러 위젯 사용하기 2-3(QtDesigner 편)
이전 포스팅에서 완성했던 코드를 이번에는 QtDesigner를 이용해서 다시 작성해 보도록 한다. QtDesigner를 사용하게 되면 디자인 코드가 보이지 않아 시그널과 슬롯 코드에 집중할 수 있는 장점이 드러난다. 다시 작성된 전체 코드는 아래와 같다.
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtGui import *
from PyQt5.QtCore import *
form_class = uic.loadUiType('QLineEdit04.ui')[0]
class MyWindow(QWidget, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
# 연결된 시그널과 슬롯: Echo 묶음
self.echo_cb.activated.connect(self.echo_changed)
# 연결된 시그널과 슬롯: validator 묶음
self.validator_cb.activated.connect(self.validator_changed)
# 연결된 시그널과 슬롯: alignment 묶음
self.alignment_cb.activated.connect(self.alignment_changed)
# 연결된 시그널과 슬롯: input_mask 묶음
self.input_mask_cb.activated.connect(self.input_mask_changed)
# 연결된 시그널과 슬롯: access_cb 묶음
self.access_cb.activated.connect(self.access_changed)
def echo_changed(self, index):
if index == 0:
self.echo_le.setEchoMode(QLineEdit.Normal)
elif index == 1:
self.echo_le.setEchoMode(QLineEdit.NoEcho)
elif index == 2:
self.echo_le.setEchoMode(QLineEdit.Password)
elif index == 3:
self.echo_le.setEchoMode(QLineEdit.PasswordEchoOnEdit)
def validator_changed(self, index):
if index == 0:
self.validator_le.setValidator(None)
elif index == 1:
self.validator_le.setValidator(QIntValidator(-99, 99))
elif index == 2:
double_validator = QDoubleValidator(-999.0, 999.0, 2)
double_validator.setNotation(QDoubleValidator.StandardNotation)
self.validator_le.setValidator(double_validator)
self.validator_le.clear()
def alignment_changed(self, index):
if index == 0:
self.alignment_le.setAlignment(Qt.AlignLeft)
elif index == 1:
self.alignment_le.setAlignment(Qt.AlignCenter)
elif index == 2:
self.alignment_le.setAlignment(Qt.AlignRight)
def input_mask_changed(self, index):
if index == 0:
self.input_mask_le.setInputMask('')
elif index == 1:
self.input_mask_le.setInputMask('000-0000-0000')
elif index == 2:
self.input_mask_le.setInputMask('0000-00-00')
self.input_mask_le.setText('20190410')
self.input_mask_le.setCursorPosition(0)
elif index == 3:
self.input_mask_le.setInputMask('>AAAAA-AAAAA-AAAAA-AAAAA;#')
def access_changed(self, index):
if index == 0:
self.access_le.setReadOnly(False)
elif index == 1:
self.access_le.setReadOnly(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyWindow()
ex.show()
sys.exit(app.exec_())
|
cs |
이전 코드와 비교해 보면 코드가 훨씬 간단명료해 진 것을 확인할 수 있다.
이 코드와 연결된 디자인 파일은 아래에 첨부하였다.
'Python > PyQt5' 카테고리의 다른 글
Python 독립 실행형 앱 배포(pyinstaller + ui 파일(복수)) (2) | 2020.07.31 |
---|---|
PyQt5: 여러 위젯 사용하기 2-2(시그널과 슬롯 연결 편) (0) | 2019.12.07 |
PyQt5: 여러 위젯 사용하기 2-1(윈도우 디자인 편) (0) | 2019.12.03 |
PyQt5: 여러 위젯 사용하기 1 (0) | 2019.11.30 |
PyQt5: QLineEdit 사용하기 2 (0) | 2019.11.21 |
- Total
- Today
- Yesterday
- 백준
- baekjoon
- tips
- 소수
- Tistory
- QLineEdit
- QtDesigner
- 리찬규
- NK
- 북한말
- QGridLayout
- word
- django
- books
- PyQt5
- BOJ
- locallibrary
- Mac
- 리규찬
- C
- judge
- setText()
- words
- python3
- 어원
- 유래
- QLabel
- QComboBox
- MacOS
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |