Python pyqt5下拉多选框的实现示例
更新时间:2025年04月21日 10:56:46 作者:总裁余(余登武)
QComboBox是一个集按钮和下拉选项于一体的控件,本文主要介绍了Python pyqt5下拉多选框的实现示例,具有一定的参考价值,感兴趣的可以了解一下
一、下拉列表框QComboBox
QComboBox是一个集按钮和下拉选项于一体的控件,也称为下拉列表框。
常用的方法
- addItem() 添加一个下拉选项
- addItems() 从列表中添加下拉选项
- Clear() 删除下拉选项中集中的所有选项
- count() 返回下拉选项集合中的数目
- currentText() 返回选中选项的文本
- itemText(i) 获取索引为i的item的选项文本
- currentIndex() 返回选中项的索引
- setItemText(int index, text) 改变序号为index项的文本
常用的信号
- Activated 当用户选中一个下拉选项时发射该信号
- currentIndexChanged() 当下拉选项的索引发生改变时发射该信号
- highlighted 当选中一个已经选中的下拉选项时,发射该信号
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class ComboxDemo(QWidget):
def __init__(self, parent=None):
super(ComboxDemo, self).__init__(parent)
self.setWindowTitle("combox 例子")
self.resize(300, 90)
layout = QVBoxLayout()
self.lbl = QLabel("")
self.cb = QComboBox()
self.cb.addItem("C")
self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])
self.cb.currentIndexChanged.connect(self.selectionchange)
layout.addWidget(self.cb)
layout.addWidget(self.lbl)
self.setLayout(layout)
def selectionchange(self, i):
self.lbl.setText(self.cb.currentText())
self.lbl.adjustSize()
print("Items in the list are :")
for count in range(self.cb.count()):
print('item' + str(count) + '=' + self.cb.itemText(count))#每个选项名称
print("Current index", i, "selection changed ", self.cb.currentText())#当前选项
if __name__ == '__main__':
app = QApplication(sys.argv)
comboxDemo = ComboxDemo()
comboxDemo.show()
sys.exit(app.exec_())




二、下拉多选
from PyQt5.QtWidgets import QComboBox, QListWidgetItem, QListWidget, QCheckBox, \
QApplication, QVBoxLayout, QWidget,QPushButton,QHBoxLayout,QLineEdit
import sys
class ComboCheckBox(QWidget):
def __init__(self, parent=None):
super(ComboCheckBox, self).__init__(parent)
self.items = ['语文', '数学', '英语', '体育']
self.box_list = []
self.comb = QComboBox(self) #列表框QComboBox
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('选择', self)
self.btn.clicked.connect(self.get_selected)
self.line=QLineEdit()
#布局
layout = QVBoxLayout()
layout.addWidget(self.btn)
layout.addWidget(self.comb)
layout.addWidget(self.line)
self.setLayout(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())
self.line.setText(str(ret))
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = ComboCheckBox()
ui.show()
sys.exit(app.exec_())

到此这篇关于Python pyqt5下拉多选框的实现示例的文章就介绍到这了,更多相关Python pyqt5下拉多选框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
keras的load_model实现加载含有参数的自定义模型
这篇文章主要介绍了keras的load_model实现加载含有参数的自定义模型,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-06-06
pycharm远程连接服务器调试tensorflow无法加载问题
最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错,本文就来介绍一下如何解决,感兴趣的可以了解一下2021-06-06
使用wxPython和ECharts实现生成和保存HTML图表
wxPython是一个基于wxWidgets的Python GUI库,ECharts是一个用于数据可视化的JavaScript库,本文主要为大家介绍了如何使用wxPython和ECharts库来生成和保存HTML图表,感兴趣的可以学习一下2023-08-08


最新评论