from PyQt5.QtWidgets import QComboBox, QListWidgetItem, QListWidget, QCheckBox, \
QApplication, QVBoxLayout, QWidget,QPushButton,QHBoxLayout
import sys
class ComboCheckBox(QWidget):
def __init__(self):
super().__init__()
self.resize(200,200)
self.items = ['a','b','c','d']
self.box_list = []
self.comb=QComboBox(self)
self.listwidget = QListWidget(self)
for i in range(len(self.items)):
self.box_list.append(QCheckBox(self))
self.box_list[i].setText(self.items[i])
item = QListWidgetItem(self.listwidget)
self.listwidget.setItemWidget(item, self.box_list[i])
#QComboBox添加模型和视图,QListWidget设置为QComboBox的View,QListWidget的Model设置为QComboBox的Model
self.comb.setModel(self.listwidget.model())
self.comb.setView(self.listwidget)
self.btn=QPushButton('ok',self)
self.btn.clicked.connect(self.get_selected)
self.layout=QHBoxLayout()
self.layout.addWidget(self.comb)
self.layout.addWidget(self.btn)
self.setLayout(self.layout)
def get_selected(self):
ret = []
for i in range(len(self.items)):
if self.box_list[i].isChecked():
ret.append(self.box_list[i].text())
print(ret)
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = ComboCheckBox()
ui.show()
sys.exit(app.exec_())
PyQt5使用下拉形式的复选框
最新推荐文章于 2024-02-06 10:57:44 发布