PyQt 5 드 롭 다운 체크 상자 QComboCheckBox 의 인 스 턴 스
어 쩔 수 없 이 이런 어 쩔 수 없 는 상황 에서 필 자 는 인터넷 의 신 들 의 방법 에 따라 스스로 하 나 를 써 볼 수 밖 에 없다.
말 하지 마,정말 쓰 라 고 했 어.필 자 는 풋내기 라 서 이 작은 성공 이 나 를 기 쁘 게 한다)
그리고 필 자 는 이 구성 요 소 를 QComboCheck Box,즉 QComboBox 와 QCheck Box 의 조합 이 라 고 엄숙 하 게 명명 했다.
잔말 말고 효과 도 를 먼저 올 려 라.
그 다음 에 코드:(첫 번 째 는 기본 이 고 두 번 째 는 전체 선택 과 비우 기 기능 이 있 습 니 다)
from PyQt5.QtWidgets import QComboBox,QLineEdit,QListWidget,QCheckBox,QListWidgetItem
class ComboCheckBox(QComboBox):
def __init__(self,items):#items==[str,str...]
super(ComboCheckBox,self).__init__()
self.items=items
self.qCheckBox=[]
self.qLineEdit=QLineEdit()
self.qLineEdit.setReadOnly(True)
qListWidget=QListWidget()
self.row_num=len(self.items)
for i in range(self.row_num):
self.qCheckBox.append(QCheckBox())
qItem=QListWidgetItem(qListWidget)
self.qCheckBox[i].setText(self.items[i])
qListWidget.setItemWidget(qItem,self.qCheckBox[i])
self.qCheckBox[i].stateChanged.connect(self.show)
self.setLineEdit(self.qLineEdit)
self.setModel(qListWidget.model())
self.setView(qListWidget)
def Selectlist(self):
Outputlist=[]
for i in range(self.row_num):
if self.qCheckBox[i].isChecked()==True:
Outputlist.append(self.qCheckBox[i].text())
return Outputlist
def show(self):
show=''
self.qLineEdit.setReadOnly(False)
self.qLineEdit.clear()
for i in self.Selectlist():
show+=i+';'
self.qLineEdit.setText(show)
self.qLineEdit.setReadOnly(True)
from PyQt5.QtWidgets import QComboBox,QLineEdit,QListWidget,QCheckBox,QListWidgetItem
class ComboCheckBox(QComboBox):
def __init__(self,items):#items==[str,str...]
super(ComboCheckBox,self).__init__()
self.items=items
self.items.insert(0,' ')
self.row_num=len(self.items)
self.Selectedrow_num=0
self.qCheckBox=[]
self.qLineEdit=QLineEdit()
self.qLineEdit.setReadOnly(True)
self.qListWidget=QListWidget()
self.addQCheckBox(0)
self.qCheckBox[0].stateChanged.connect(self.All)
for i in range(1,self.row_num):
self.addQCheckBox(i)
self.qCheckBox[i].stateChanged.connect(self.show)
self.setModel(self.qListWidget.model())
self.setView(self.qListWidget)
self.setLineEdit(self.qLineEdit)
def addQCheckBox(self,i):
self.qCheckBox.append(QCheckBox())
qItem=QListWidgetItem(self.qListWidget)
self.qCheckBox[i].setText(self.items[i])
self.qListWidget.setItemWidget(qItem,self.qCheckBox[i])
def Selectlist(self):
Outputlist=[]
for i in range(1,self.row_num):
if self.qCheckBox[i].isChecked()==True:
Outputlist.append(self.qCheckBox[i].text())
self.Selectedrow_num=len(Outputlist)
return Outputlist
def show(self):
show=''
Outputlist=self.Selectlist()
self.qLineEdit.setReadOnly(False)
self.qLineEdit.clear()
for i in Outputlist:
show+=i+';'
if self.Selectedrow_num==0:
self.qCheckBox[0].setCheckState(0)
elif self.Selectedrow_num==self.row_num-1:
self.qCheckBox[0].setCheckState(2)
else:
self.qCheckBox[0].setCheckState(1)
self.qLineEdit.setText(show)
self.qLineEdit.setReadOnly(True)
def All(self,zhuangtai):
if zhuangtai==2:
for i in range(1,self.row_num):
self.qCheckBox[i].setChecked(True)
elif zhuangtai==1:
if self.Selectedrow_num==0:
self.qCheckBox[0].setCheckState(2)
elif zhuangtai==0:
self.clear()
def clear(self):
for i in range(self.row_num):
self.qCheckBox[i].setChecked(False)
사용 방법:a=ComboCheckBox('하위 항목 목록')
selectlist()선 택 된 하위 항목 목록 가 져 오기
All()전체 선택
clear()옵션 비우 기
이상 의 PyQt 5 드 롭 다운 체크 상자 QComboCheckBox 의 인 스 턴 스 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 될 수 있 고 많은 사랑 을 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qt Designer와 PyQt5로 GUI인 MQTT 구독자를 만들 때의 메모직장의 건물이 신축되었으므로, 각 층의 분전반에 전력계를 설치해, 1곳에서 모니터링할 수 있는 시스템을 구축하려고 생각했다. 전력계는 을 참고로 제작했다. 시스템의 전체도 Windows10상에, 선인의 지혜를 참고로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.