QComboBox 위젯
페이지정보
글쓴이 관리자 조회 31,629 조회 날짜 19-12-13 16:28 / U:22-12-05 02:15내용
QComboBox 위젯
QComboBox 위젯은 인터넷에서 사용하는 selectbox의 기능과 같다.
QComboBox에는 아이콘, 텍스트, 데이터가 인수로 들어간다.
그리고 순서는 index로 구분된다.
UI file
1. Item 입력
QComboBox에 Item을 입력하는 메서드는 addItem()이다. ( icon과 userData는 생략 가능 )
addItem(icon, text, userData=None)
Item을 입력하는 방법은 다음과 같다.
cbox = QComboBox()
cbox.addItem("Sunny", "data s")
cbox.addItem("Cloudy", "data c")
cbox.addItem("Rainy", "data r")
cbox.addItem("Foggy", "data f")
addItem은 마지막에 하나씩 추가하는 메서드이다.
만약 기존에 있는 Item 사이에 새로운 Item을 넣고 싶다면 insertItem(index, icon, text, userData=None)를 사용한다.( icon과 userData는 생략 가능 )
2. 현재 Item 받기
QComboBox에서 선택된 값은 index, text, data가 있다. 이 세개의 값을 받아오는 메서드는 다음과 같다.
currentData()
currentIndex()
currentText()
사용법
index = UI_set.comboBox.currentIndex() text = UI_set.comboBox.currentText() data = UI_set.comboBox.currentData() |
3. Item값이 바뀌었을 때의 이벤트(시그널)
QComboBox의 값을 선택했을 때, 이벤트를 처리하기 위해서는 currentIndexChanged 시그널을 이용한다.
UI_set.comboBox.currentIndexChanged.connect(checkcombobox)
4. QComboBox의 현재 선택된 Item을 프로그램 코드로 변경하기
1) index값으로 변경
UI_set.comboBox.setCurrentIndex(0)
2) text 값으로 변경
UI_set.comboBox.setCurrentText('Sunny')
5. Item 삭제
QComboBox의 Item을 삭제하기 위해서는 clear(), removeItem(index) 메서드를 사용한다.
전체삭제
UI_set.comboBox.clear()
하나씩 삭제
UI_set.comboBox.removeItem(0)
Item의 갯수보다 많은 index를 지정할 때는 삭제가 되지 않는다.
Item의 모든 갯수를 추출하려면 count() 메서드를 사용한다.
text를 이용하여 Item의 index를 찾아내려면 findText()를 사용한다.
사용법
count = UI_set.comboBox.count()
idx = UI_set.comboBox.findText("Foggy")
UI_set.comboBox.removeItem(idx)
출처 : https://doc.qt.io/qtforpython/PySide6/QtWidgets/QComboBox.html#
전체 코드
import sys
def etupUI(self):
UI_set = QtUiTools.QUiLoader().load(resource_path("datetest.ui"))
UI_set.BTN_check.clicked.connect(checkcalendar) UI_set.comboBox.currentIndexChanged.connect(checkcombobox)
# comboBox 아이템 모두 삭제
# Item 추가
# comboBox 기본 값 설정 UI_set.comboBox.setCurrentText('Foggy')
self.setCentralWidget(UI_set)
def checkcombobox():
UI_set.TE_result.setText(str(index))
def checkcalendar(): # 현재 선택된 시간(시스템 시간)을 저장 date = UI_set.Calendar.selectedDate()
# 현재 선택된 시간을 변경, 자동으로 위젯 페이지 변경 # 변경된 시간을 다시 저장
# 달력 위젯 페이지만 변경 UI_set.Calendar.setCurrentPage(2012, 7)
# 메서드로 년, 월, 일, 요일 출력하기 UI_set.TE_result.append(str(date))
|
출처 :
QComboBox - https://doc.qt.io/qtforpython/PySide6/QtWidgets/QComboBox.html
댓글목록
댓글이 없습니다