日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

PYQT5 多选下拉列表框

發布時間:2025/3/15 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PYQT5 多选下拉列表框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from PyQt5.QtWidgets import QComboBox, QLineEdit, QListWidget, QCheckBox, QListWidgetItem, QApplication from PyQt5.QtCore import pyqtSignal import sys""" 1.將show函數改成show0 2.增加changeitemlist函數 3.增加信號signa """class ComboCheckBox(QComboBox):signa = pyqtSignal(list)def __init__(self, items): # items==[str,str...]super(ComboCheckBox, self).__init__()self.items = itemsself.items.insert(0, '全部')self.row_num = len(self.items)self.Selectedrow_num = 0self.qCheckBox = []self.qLineEdit = QLineEdit()self.qLineEdit.setReadOnly(True)self.qListWidget = QListWidget()self.addQCheckBox(0)self.qCheckBox[0].stateChanged.connect(self.All)for i in range(1, self.row_num):self.addQCheckBox(i)self.qCheckBox[i].stateChanged.connect(self.show0)self.setModel(self.qListWidget.model())self.setView(self.qListWidget)self.setLineEdit(self.qLineEdit)self.setMaxVisibleItems(100) # 避免滑條的出現引起滑條偷吃標簽的問題def addQCheckBox(self, i):self.qCheckBox.append(QCheckBox())qItem = QListWidgetItem(self.qListWidget)self.qCheckBox[i].setText(self.items[i])self.qListWidget.setItemWidget(qItem, self.qCheckBox[i])def Selectlist(self):Outputlist = []for i in range(1, self.row_num):if self.qCheckBox[i].isChecked() == True:Outputlist.append(self.qCheckBox[i].text())self.Selectedrow_num = len(Outputlist)return Outputlistdef show0(self):show0 = ''Outputlist = self.Selectlist()self.signa.emit(Outputlist)self.qLineEdit.setReadOnly(False)self.qLineEdit.clear()for i in Outputlist:show0 += i + ';'if self.Selectedrow_num == 0:self.qCheckBox[0].setCheckState(0)elif self.Selectedrow_num == self.row_num - 1:self.qCheckBox[0].setCheckState(2)else:self.qCheckBox[0].setCheckState(1)self.qLineEdit.setText(show0)self.qLineEdit.setReadOnly(True)def All(self, zhuangtai):if zhuangtai == 2:for i in range(1, self.row_num):self.qCheckBox[i].setChecked(True)elif zhuangtai == 1:if self.Selectedrow_num == 0:self.qCheckBox[0].setCheckState(2)elif zhuangtai == 0:self.clear()def clear(self):for i in range(self.row_num):self.qCheckBox[i].setChecked(False)def changeitemlist(self, itemlist):self.items = itemlistself.items.insert(0, '全部')self.row_num = len(self.items)self.Selectedrow_num = 0self.qCheckBox = []self.qLineEdit = QLineEdit()self.qLineEdit.setReadOnly(True)self.qListWidget = QListWidget()self.addQCheckBox(0)self.qCheckBox[0].stateChanged.connect(self.All)for i in range(1, self.row_num):self.addQCheckBox(i)self.qCheckBox[i].stateChanged.connect(self.show0)self.setModel(self.qListWidget.model())self.setView(self.qListWidget)self.setLineEdit(self.qLineEdit)if __name__ == "__main__":app = QApplication(sys.argv)mainWindow = ComboCheckBox(['裝置ID', '傳感器ID', "采樣時間", '裝置電源電壓', "信號強度",'裝置ID', '傳感器ID', "采樣時間", '裝置電源電壓', "信號強度"])def solt11(x):print(x)mainWindow.signa.connect(solt11)mainWindow.show()sys.exit(app.exec_())

原始代碼來源于:https://blog.csdn.net/LJX4ever/article/details/78039318

總結

以上是生活随笔為你收集整理的PYQT5 多选下拉列表框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。