본문 바로가기

전체 글

(69)
21. QProgressBar 진행 표시줄(progress bar)은 시간이 걸리는 작업에 사용되는 위젯입니다. (QProgressBar 공식 문서) 참고 QProgressBar 위젯은 수평, 수직의 진행 표시줄을 제공하며, setMinimum()과 setMaximum() 메서드로 진행 표시줄의 최소값과 최대값을 설정할 수 있으며, 또한 setRange() 메서드로 한 번에 범위를 설정할 수도 있습니다. 기본값은 0과 99입니다. setValue() 메서드로 진행 표시줄의 진행 상태를 특정 값으로 설정할 수 있고, reset() 메서드는 초기 상태로 되돌립니다. 진행 표시줄의 최소값과 최대값을 모두 0으로 설정하면, 진행 표시줄은 위의 그림과 같이 항상 진행 중인 상태로 표시됩니다. 이 기능은 다운로드하고 있는 파일의 용량을 알 수 ..
20. QLineEdit 한 줄의 문자열을 입력하고 수정할 수 있도록 하는 위젯입니다. (QLineEdit 공식 문서) 참고 setEchoMode() 메서드를 이용하여, 입력 형식을 조정합니다. (예: setEchoMode(QLineEdit.Normal) 또는 setEchoMode(0)) echoMode 설정 상수 상수 값 설명 QLineEdit.Normal 0 입력된 문자를 표시합니다. (기본값) QLineEdit.NoEcho 1 문자열을 표시하지 않습니다. QLineEdit.Password 2 입력된 문자 대신 비밀번호 가림용 문자를 표시합니다. QLineEdit.PasswordEchoOnEdit 3 입력할 때만 문자를 표시하고, 수정 중에는 다른 문자를 표시합니다. maxLength() 메서드로 입력되는 텍스트의 길이를 제..
19. QComboBox 적은 공간에서 여러 옵션을 선택할 수 있게 해주는 위젯입니다. (QComboBox 공식 문서) 참고 19-1 예제: ex18 import sys from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QComboBox) class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.lbl = QLabel('Option1', self) self.lbl.move(50, 150) cb = QComboBox(self) cb.addItem('Option1') cb.addItem('Option2') cb.addItem('Option3') cb.addIt..
18. QRadioButton QRadioButton은 사용자에게 여러 개 중 하나의 옵션을 선택하도록 할 때 사용합니다. 그래서 한 위젯 안에 여러 라디오 버튼은 기본적으로 autoExclusive로 설정되어 있습니다. 하나의 버튼을 선택하면 나머지 버튼들은 선택 해제가 됩니다. 한 번에 여러 버튼을 선택할 수 있도록 하려면 setAutoExclusive() 메서드를 False로 합니다. 또한 한 위젯 안에 여러 개의 exclusive 버튼 그룹을 배치하고 싶다면 QButtonGroup() 메서드를 사용할 수 있습니다. (QRadioButton 공식 문서) 참고 toggle() 메서드를 이용하여 상태를 변경하고, isChecked() 메서드를 이용하여 버튼 상태를 가져옵니다. 자주 쓰이는 QRadioButton 메서드는 아래 표와 ..
17. QCheckBox QCheckBox 위젯은 on(선택)/off(해제) 의 두 상태를 갖는 버튼입니다. (QCheckBox 공식 문서) 참고 setTristate() 메서드를 사용하여 '변경 없음(no change)' 상태를 가질 수 있습니다. checkState() 메서드를 사용하여 선택/변경 없음/해제 여부에 따라 각각 2/1/0 값을 반환합니다. ButtonGroup 클래스를 사용하여 상호 베타적인 exclusive/non-exclusive 버튼 그룹을 만들 수 있습니다. exclusive 버튼 그룹은 여러 개 중 하나의 버튼만 선택할 수 있습니다. (QButtonGroup 공식 문서) 참고 QCheckBox 위젯에 자주 쓰이는 메서드와 시그널은 아래 표와 같습니다. 자주 쓰이는 메서드 메서드 설명 text() 체크 ..
16. QLabel QLabel 위젯은 텍스트 또는 이미지 라벨(분류표)을 만들 때 쓰입니다. (QLabel 공식 문서) 참고 라벨은 기본적으로 수평 방향으로 왼쪽, 수직 방향으로 가운데 정렬이지만 setAlignment() 메서드를 통해 정렬합니다. 16-1 예제: ex15 import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtCore import Qt class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl1 = QLabel('First Label', self) lbl1.setAlignmen..
15. QPushButton QPushButton 클래스의 자주 사용하는 메서드와 시그널을 아래 표에서 확인 바랍니다. (QPushButton 공식 문서) 참고 자주 사용하는 메서드 메서드 설명 setCheckable() True 설정 시, 누른 상태와 그렇지 않은 상태를 구분합니다. toggle() 상태를 바꿉니다. setIcon() 버튼의 아이콘을 설정합니다. setEnabled() False 설정 시, 버튼을 사용할 수 없습니다. isCheceked() 버튼의 선택 여부를 반환합니다. setText() 버튼에 표시될 텍스트를 설정합니다. text() 버튼에 표시된 텍스트를 반환합니다. 자주 사용하는 시그널 시그널 설명 clicked() 버튼을 클릭할 때 발생합니다. pressed() 버튼이 눌렸을 때 발생합니다. release..
14. 그리드 레이아웃 그리드 레이아웃은 위젯의 공간을 행(row)과 열(column)로 구분합니다. 세 개의 라벨, 두 개의 라인에디터, 하나의 텍스트 에디터를 그리드 레이아웃에 배치합니다. 14-1 예제: ex13 import sys from PyQt5.QtWidgets import (QApplication, QWidget, QGridLayout, QLabel, QLineEdit, QTextEdit) class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): gridLayout = QGridLayout(self) #self.setLayout(gridLayout) gridLayout.addWidget(QLabel('Ti..