赞
踩
这是一种列表,当里面的列表项内容行数大于列表框的高度后,自动出现滚动条
任务目标:
用列表展示课程,双击选中后可以弹出提示框选择显示选择的内容。
设计:
完整代码:
- from PyQt5 import QtCore, QtGui, QtWidgets
-
-
- class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(473, 348)
- self.listWidget = QtWidgets.QListWidget(Form)
- self.listWidget.setGeometry(QtCore.QRect(110, 70, 256, 192))
- self.listWidget.setObjectName("listWidget")
-
- self.retranslateUi(Form)
- QtCore.QMetaObject.connectSlotsByName(Form)
-
-
- self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)# 设置选中方式为整行选中
-
- self.listWidget.setViewMode(QtWidgets.QListView.ListMode)# 设置以列表形式显示数据
-
- self.listWidget.setWordWrap(True) # 设置自动换行,大家可以调一下试试
-
- self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)#设置单选
- # self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)设置列表中可以多选
-
- from collections import OrderedDict
- # 定义有序字典,作为List列表的数据源,键值对
- dict=OrderedDict({'1':'操作系统',
- '2':'数据结构',
- '3':'计算机网络',
- '4':'离散数学',
- '5':'需求工程',
- '6':'Python Web',
- '7':'java EE',
- '8':'区块链'})
- for key,value in dict.items():# 遍历字典,并分别获取到键值
- self.item = QtWidgets.QListWidgetItem(self.listWidget)# 创建列表项
- self.item.setText(key+':'+value) # 设置项文本
- self.item.setToolTip(value) # 设置提示文字
- self.listWidget.itemDoubleClicked.connect(self.gettext)
-
- # 自定义槽函数,获取列表选中项的值
- def gettext(self,item):
- if item.isSelected(): # 判断项是否选中
- from PyQt5.QtWidgets import QMessageBox
- QMessageBox.information(MainWindow,"提示","您选择的是:"+item.text(),QMessageBox.Ok)
-
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
-
- import sys
- if __name__ == '__main__':
- app=QtWidgets.QApplication(sys.argv)
- MainWindow = QtWidgets.QMainWindow()
- ui = Ui_Form()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec_())

效果:
双击后弹出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。