当前位置: 代码网 > it编程>前端脚本>Python > Python pyqt5下拉多选框的实现示例

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

2025年04月21日 Python 我要评论
一、下拉列表框qcomboboxqcombobox是一个集按钮和下拉选项于一体的控件,也称为下拉列表框。常用的方法additem() 添加一个下拉选项additems() 从列表中添加下拉选项clea

一、下拉列表框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下拉多选框内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com