Python-pyqt5之ListWidget:列表

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

任务目标:

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

设计:

完整代码:

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_())

效果:

双击后弹出

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值