다중 선택 QComboBox
을 만들었습니다. 항목을 체크 할 수 있습니다 (모든 항목에는 확인란과 텍스트 값이 있습니다). CheckBox는 사용자가 클릭 할 때만 선택됩니다. 내가 원하는 것은 사용자가 텍스트 값을 클릭 할 때 신호를 잡아서 옆에있는 확인란을 선택할 수 있도록하는 것입니다. 그렇게하는 방법?qComboBox 팝업 메뉴에서 마우스 버튼을 누를 때
areas = ["Area one", "Area two", "Area three", "Area four"]
model = QtGui.QStandardItemModel(5, 1)# 5 rows, 1 col
firstItem = QtGui.QStandardItem("---- Select area(s) ----")
firstItem.setBackground(QtGui.QBrush(QtGui.QColor(200, 200, 200)))
firstItem.setSelectable(False)
model.setItem(0, 0, firstItem)
for i,area in enumerate(areas):
item = QtGui.QStandardItem(area)
item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole)
model.setItem(i+1, 0, item)
self.ui.comboBox.setModel(model)
self.ui.comboBox.installEventFilter(self)
, 그래서 firstItem
의 텍스트는 항상 "선택"으로 표시됩니다 :
이
내가 콤보 상자에 모델을 설정하는 방법입니다def eventFilter(self,target,event):
if target == self.ui.comboBox:
if(event.type()== QtCore.QEvent.Wheel):
#wheel event is blocked here
return True
return False
eventFilter를 수정하고 주 응용 프로그램에 설치하면 모든 단일 이벤트가 실행되는 것을 볼 수 있습니다. 콤보 상자와 상호 작용할 때 전혀 이벤트가 전송되지 않습니다./ – M4rtini