pyside6怎么做出下拉菜单是复选框的形式
时间: 2024-04-22 18:07:19 浏览: 180
可以使用QComboBox和QCheckBox来实现下拉菜单是复选框的形式。
首先,需要创建一个QComboBox实例,并将其下拉列表模式设置为QComboBox::CheckedList。
```
combo_box = QtWidgets.QComboBox()
combo_box.setInsertPolicy(QtWidgets.QComboBox.NoInsert)
combo_box.setEditable(True)
combo_box.setDuplicatesEnabled(False)
combo_box.setFrame(True)
combo_box.setModelColumn(0)
combo_box.setView(QtWidgets.QListView())
combo_box.setFixedHeight(30)
combo_box.view().setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
combo_box.view().setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
combo_box.view().setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
combo_box.setFixedWidth(150)
combo_box.setFixedSize(150, 30)
combo_box.view().setSpacing(2)
combo_box.setContentsMargins(0, 0, 0, 0)
combo_box.view().setContentsMargins(0, 0, 0, 0)
combo_box.setFrameShape(QtWidgets.QFrame.NoFrame)
combo_box.setWindowFlags(QtCore.Qt.Popup)
combo_box.view().setAutoFillBackground(True)
palette = combo_box.view().palette()
palette.setColor(QtGui.QPalette.Base, QtGui.QColor(255, 255, 255))
combo_box.view().setPalette(palette)
combo_box.setView(QtWidgets.QListView())
combo_box.setView(QtWidgets.QListView())
combo_box.view().setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
combo_box.view().setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
combo_box.view().setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
combo_box.setFixedWidth(150)
combo_box.setFixedSize(150, 30)
combo_box.view().setSpacing(2)
combo_box.setContentsMargins(0, 0, 0, 0)
combo_box.view().setContentsMargins(0, 0, 0, 0)
combo_box.setFrameShape(QtWidgets.QFrame.NoFrame)
combo_box.setWindowFlags(QtCore.Qt.Popup)
```
然后,需要将每个选项添加到QComboBox中,并将其设置为QCheckBox。
```
for option in options:
item = QtGui.QStandardItem(option)
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Unchecked)
model.appendRow(item)
index = model.indexFromItem(item)
combo_box.setCheckBox(index, True)
```
最后,将QComboBox添加到QWidget中即可。
```
widget_layout = QtWidgets.QVBoxLayout()
widget_layout.addWidget(combo_box)
widget.setLayout(widget_layout)
```
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![py](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)