반응형
일반적으로 체크박스를 사용하면 체크된 상태(True)와 체크되지 않은 상태(False) 두 가지를 많이 생각합니다.
하지만 PyQt에서는 아래의 사진과 같이 체크된 상태와 체크되지 않은 상태, 그리고 그 중간 상태까지 세 종류를 사용할 수 있습니다. 이를 세 가지 상태를 가지는 체크박스라 하여 Tri-state Checkbox라고 합니다.
일반적으로는 순서대로 Unchecked, Partially Checked, Checked라고 부릅니다.
예제 코드를 살펴보면서 사용법을 알아보겠습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.checkbox_example()
def checkbox_example(self):
cb1 = QCheckBox('Checkbox 1', self)
cb2 = QCheckBox('Checkbox 2', self)
cb3 = QCheckBox('Checkbox 3', self)
cb1.move(20, 20) # left, top
cb2.move(20, 50)
cb3.move(20, 80)
cb1.setTristate(True)
cb2.setTristate(True)
cb3.setTristate(True)
cb1.setCheckState(0)
cb2.setCheckState(1)
cb3.setCheckState(2)
print("Checkbox1: ", cb1.checkState())
print("Checkbox2: ", cb2.checkState())
print("Checkbox3: ", cb3.checkState())
self.setWindowTitle('QCheckbox Example')
self.setGeometry(300, 300, 200, 150)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
exe = MyApp()
sys.exit(app.exec_())
* 코드 설명
1. setTristate(): True를 넣어주면 각각의 체크박스가 세 가지 체크 옵션을 가지도록 설정해줍니다.
2. setCheckState(): 각 체크박스에 체크 상태를 부여해줍니다.
* Argument: 0: Unchecked, 1: Partially Checked, 2: Checked
3. checkState(): 각 체크박스의 현재 상태를 반환합니다.
* Return Value: 0: Unchecked, 1: Partially Checked, 2: Checked
* 실행 결과
반응형
'프로젝트 및 실습 > PyQt' 카테고리의 다른 글
[PyQt] Ctrl + KeyPressEvent 사용법 (1) | 2022.10.04 |
---|---|
[PyQt] Table Widget 열 너비를 Text 길이에 맞추기 (0) | 2022.09.28 |
[PyQt] Checkbox StateChanged 시그널 (0) | 2022.09.28 |
[PyQt] Qt Designer 설치 및 실행 (in Pycharm) (0) | 2022.09.14 |