0
내 콤보 상자 항목을 사용자가 확인할 수 있어야 여러 항목을 선택할 수 있습니다. 나는 stackoverflow에 대한 몇 가지 해결책을 봤어. 나는 그것을 코드에 적용했다. 뭔가했지만 체크 박스가 아직 보이지 않아 아직 항목을 선택할 수 없습니다. 그때, 체크 박스에 대한 QItemDelegate의 서브 클래스를 만드는 콤보 상자의 항목 위임에 그 연결하여이 작업을 얻을 수 있었다ComboBox 내 CheckBox가 보이지 않음
from PySide.QtGui import *
from PySide.QtCore import *
udims = [here goes some items]
cmb = QComboBox()
model = QStandardItemModel(len(udims), 1)
for i, udim in enumerate(udims):
item = QStandardItem(udim)
item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
item.setData(Qt.Checked | Qt.CheckStateRole)
model.setItem(i, 0, item)
cmb.setModel(model)
이 샘플 코드는 [MCVE] (http://stackoverflow.com/help/mcve)가 아닙니다. 이것은 udims의 할당을 수정하는 것이 매우 쉽기 때문에 특히 성가신 일입니다. (예 :'udims = [ "here", "goes", "some", "items"]'); 'model = QStandardItemModel (len (items), 1)'(예 :'model = QStandardItemModel (len (udims), 1)')을 수정하십시오. 'item = QStandarItem (udim)'(typo) 수정; 'QApplication()'의 인스턴스를 추가하십시오. 나는 PyQt5에서 (로컬)이 모든 작업을 수행했다. Btw. 내 PyQt5 "포트"에도 확인란이 표시되지 않았습니다. – Scheff
설명하는 동작 (체크 박스 없음, 마우스 오버 선택 없음) 저는 (Cygwin, python3, PyQt5) 내 편에서 본 적이 있습니다. [SO : CheckBox의 ComboBox?] (https://stackoverflow.com/a/20118475/7478597)를보십시오. 아마도 항목 위임 트릭을 사용하여 표시 할 수 있습니다. Btw. 나는'item.setData (Qt.Checked | Qt.CheckStateRole)'에 또 다른 오타가 있다고 생각한다 :'item.setData (Qt.Checked, Qt.CheckStateRole)'(즉, **','** **''대신 **?)? – Scheff
ItemDelegate 트릭이 내 문제를 해결했습니다. – Vicspidy