• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Python pyqt5下拉多选框的实现示例

    发布者: 福建二哥 | 发布时间: 2025-6-14 12:20| 查看数: 84| 评论数: 0|帖子模式

    一、下拉列表框QComboBox

    QComboBox是一个集按钮和下拉选项于一体的控件,也称为下拉列表框。
    常用的方法

    • addItem() 添加一个下拉选项
    • addItems() 从列表中添加下拉选项
    • Clear() 删除下拉选项中集中的所有选项
    • count() 返回下拉选项集合中的数目
    • currentText() 返回选中选项的文本
    • itemText(i) 获取索引为i的item的选项文本
    • currentIndex() 返回选中项的索引
    • setItemText(int index, text) 改变序号为index项的文本
    常用的信号

    • Activated 当用户选中一个下拉选项时发射该信号
    • currentIndexChanged() 当下拉选项的索引发生改变时发射该信号
    • highlighted 当选中一个已经选中的下拉选项时,发射该信号
    1. import sys
    2. from PyQt5.QtCore import *
    3. from PyQt5.QtGui import *
    4. from PyQt5.QtWidgets import *

    5. class ComboxDemo(QWidget):
    6.     def __init__(self, parent=None):
    7.         super(ComboxDemo, self).__init__(parent)
    8.         self.setWindowTitle("combox 例子")
    9.         self.resize(300, 90)
    10.         layout = QVBoxLayout()
    11.         self.lbl = QLabel("")

    12.         self.cb = QComboBox()
    13.         self.cb.addItem("C")
    14.         self.cb.addItem("C++")
    15.         self.cb.addItems(["Java", "C#", "Python"])
    16.         self.cb.currentIndexChanged.connect(self.selectionchange)
    17.         layout.addWidget(self.cb)
    18.         layout.addWidget(self.lbl)
    19.         self.setLayout(layout)

    20.     def selectionchange(self, i):
    21.         self.lbl.setText(self.cb.currentText())
    22.         self.lbl.adjustSize()

    23.         print("Items in the list are :")
    24.         for count in range(self.cb.count()):
    25.             print('item' + str(count) + '=' + self.cb.itemText(count))#每个选项名称
    26.             print("Current index", i, "selection changed ", self.cb.currentText())#当前选项

    27. if __name__ == '__main__':
    28.     app = QApplication(sys.argv)
    29.     comboxDemo = ComboxDemo()
    30.     comboxDemo.show()
    31.     sys.exit(app.exec_())
    复制代码





    二、下拉多选
    1. from PyQt5.QtWidgets import QComboBox, QListWidgetItem, QListWidget, QCheckBox, \
    2.   QApplication, QVBoxLayout, QWidget,QPushButton,QHBoxLayout,QLineEdit
    3. import sys

    4. class ComboCheckBox(QWidget):
    5.   def __init__(self, parent=None):
    6.         super(ComboCheckBox, self).__init__(parent)

    7.         self.items = ['语文', '数学', '英语', '体育']
    8.         self.box_list = []
    9.         self.comb = QComboBox(self) #列表框QComboBox
    10.         self.listwidget = QListWidget(self) #(列表控件)

    11.         for i in range(len(self.items)):
    12.             self.box_list.append(QCheckBox(self))
    13.             self.box_list[i].setText(self.items[i])
    14.             item = QListWidgetItem(self.listwidget)
    15.             self.listwidget.setItemWidget(item, self.box_list[i])
    16.             # QComboBox添加模型和视图,QListWidget设置为QComboBox的View,QListWidget的Model设置为QComboBox的Model
    17.         self.comb.setModel(self.listwidget.model())
    18.         self.comb.setView(self.listwidget)

    19.         self.btn = QPushButton('选择', self)
    20.         self.btn.clicked.connect(self.get_selected)
    21.         self.line=QLineEdit()
    22.         #布局
    23.         layout = QVBoxLayout()
    24.         layout.addWidget(self.btn)
    25.         layout.addWidget(self.comb)
    26.         layout.addWidget(self.line)
    27.         self.setLayout(layout)

    28.   def get_selected(self):
    29.       ret = []
    30.       for i in range(len(self.items)):
    31.           if self.box_list[i].isChecked():
    32.               ret.append(self.box_list[i].text())
    33.       self.line.setText(str(ret))



    34. if __name__ == "__main__":
    35.   app = QApplication(sys.argv)
    36.   ui = ComboCheckBox()
    37.   ui.show()
    38.   sys.exit(app.exec_())
    复制代码

    到此这篇关于Python pyqt5下拉多选框的实现示例的文章就介绍到这了,更多相关Python pyqt5下拉多选框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/python/340046ckn.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表