欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?pyqt5下拉多選框的實(shí)現(xiàn)示例

 更新時(shí)間:2025年04月21日 10:56:46   作者:總裁余(余登武)  
QComboBox是一個(gè)集按鈕和下拉選項(xiàng)于一體的控件,本文主要介紹了Python?pyqt5下拉多選框的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下

一、下拉列表框QComboBox

QComboBox是一個(gè)集按鈕和下拉選項(xiàng)于一體的控件,也稱為下拉列表框。

常用的方法

  • addItem() 添加一個(gè)下拉選項(xiàng)
  • addItems() 從列表中添加下拉選項(xiàng)
  • Clear() 刪除下拉選項(xiàng)中集中的所有選項(xiàng)
  • count() 返回下拉選項(xiàng)集合中的數(shù)目
  • currentText() 返回選中選項(xiàng)的文本
  • itemText(i) 獲取索引為i的item的選項(xiàng)文本
  • currentIndex() 返回選中項(xiàng)的索引
  • setItemText(int index, text) 改變序號(hào)為index項(xiàng)的文本

常用的信號(hào)

  • Activated 當(dāng)用戶選中一個(gè)下拉選項(xiàng)時(shí)發(fā)射該信號(hào)
  • currentIndexChanged() 當(dāng)下拉選項(xiàng)的索引發(fā)生改變時(shí)發(fā)射該信號(hào)
  • highlighted 當(dāng)選中一個(gè)已經(jīng)選中的下拉選項(xiàng)時(shí),發(fā)射該信號(hào)
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))#每個(gè)選項(xiàng)名稱
            print("Current index", i, "selection changed ", self.cb.currentText())#當(dāng)前選項(xiàng)

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 = ['語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)', '體育']
        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設(shè)置為QComboBox的View,QListWidget的Model設(shè)置為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_())

到此這篇關(guān)于Python pyqt5下拉多選框的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python pyqt5下拉多選框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論