当前位置:   article > 正文

Python-pyqt5之ListWidget:列表_pyqt5 listwidget

pyqt5 listwidget

这是一种列表,当里面的列表项内容行数大于列表框的高度后,自动出现滚动条

任务目标:

用列表展示课程,双击选中后可以弹出提示框选择显示选择的内容。

设计:

完整代码:

  1. from PyQt5 import QtCore, QtGui, QtWidgets
  2. class Ui_Form(object):
  3. def setupUi(self, Form):
  4. Form.setObjectName("Form")
  5. Form.resize(473, 348)
  6. self.listWidget = QtWidgets.QListWidget(Form)
  7. self.listWidget.setGeometry(QtCore.QRect(110, 70, 256, 192))
  8. self.listWidget.setObjectName("listWidget")
  9. self.retranslateUi(Form)
  10. QtCore.QMetaObject.connectSlotsByName(Form)
  11. self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)# 设置选中方式为整行选中
  12. self.listWidget.setViewMode(QtWidgets.QListView.ListMode)# 设置以列表形式显示数据
  13. self.listWidget.setWordWrap(True) # 设置自动换行,大家可以调一下试试
  14. self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)#设置单选
  15. # self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)设置列表中可以多选
  16. from collections import OrderedDict
  17. # 定义有序字典,作为List列表的数据源,键值对
  18. dict=OrderedDict({'1':'操作系统',
  19. '2':'数据结构',
  20. '3':'计算机网络',
  21. '4':'离散数学',
  22. '5':'需求工程',
  23. '6':'Python Web',
  24. '7':'java EE',
  25. '8':'区块链'})
  26. for key,value in dict.items():# 遍历字典,并分别获取到键值
  27. self.item = QtWidgets.QListWidgetItem(self.listWidget)# 创建列表项
  28. self.item.setText(key+':'+value) # 设置项文本
  29. self.item.setToolTip(value) # 设置提示文字
  30. self.listWidget.itemDoubleClicked.connect(self.gettext)
  31. # 自定义槽函数,获取列表选中项的值
  32. def gettext(self,item):
  33. if item.isSelected(): # 判断项是否选中
  34. from PyQt5.QtWidgets import QMessageBox
  35. QMessageBox.information(MainWindow,"提示","您选择的是:"+item.text(),QMessageBox.Ok)
  36. def retranslateUi(self, Form):
  37. _translate = QtCore.QCoreApplication.translate
  38. Form.setWindowTitle(_translate("Form", "Form"))
  39. import sys
  40. if __name__ == '__main__':
  41. app=QtWidgets.QApplication(sys.argv)
  42. MainWindow = QtWidgets.QMainWindow()
  43. ui = Ui_Form()
  44. ui.setupUi(MainWindow)
  45. MainWindow.show()
  46. sys.exit(app.exec_())

效果:

双击后弹出

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/282947
推荐阅读
相关标签
  

闽ICP备14008679号