【QTdesigner】课时65.显示列数据(QListView)(QListWidget)【pyqt5+QTdesigner模式】

>>> 点击进入:pyqt5专栏<<<

老师原课件下载地址:
有积分的朋友,支持下我,打赏也OK。
不下载也可以,我每节课会吧代码贴出来


视频链接

P64课时65.显示列数据(QListView控件)


知识点扩充

参考博客:
PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系
PyQt5高级界面控件之QListWidget(三)

在这里插入图片描述


课程重点

在这里插入图片描述


代码位置

在这里插入图片描述


完整代码

'''

显示列表数据(QListView控件)

'''

from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListView, QMessageBox
from PyQt5.QtCore import QStringListModel
import sys


class ListViewDemo(QWidget):
    def __init__(self, parent=None):
        super(ListViewDemo, self).__init__(parent)
        self.setWindowTitle("QListView 例子")
        self.resize(300, 270)
        layout = QVBoxLayout()

        listview = QListView()
        listModel = QStringListModel()
        self.list = ["列表项1","列表项2", "列表项3"]

        listModel.setStringList(self.list)

        listview.setModel(listModel)
        listview.clicked.connect(self.clicked)
        layout.addWidget(listview)

        self.setLayout(layout)

    def clicked(self,item):
        QMessageBox.information(self,"QListView","您选择了:" + self.list[item.row()])



if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = ListViewDemo()
    win.show()
    sys.exit(app.exec_())


遇到的问题

搞不明白item里有哪些方法:
于是打印出来看看
在这里插入图片描述

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'child', 'column', 'data', 'flags', 'internalId', 'internalPointer', 'isValid', 'model', 'parent', 'row', 'sibling', 'siblingAtColumn', 'siblingAtRow']

改写效果展示

在这里插入图片描述


改写注意点

只有widget才能手动添加item


改写代码(QTdesigner模式)

# -*- coding:utf-8 -*-
'''
@Author: knocky
@Blog: https://blog.csdn.net/zzx188891020
@E-mail: 188891020@qq.com
@File: class65.py
@CreateTime: 2020/5/29 23:32
'''

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
from PyQt5 import uic

class my_form(QWidget):
    def __init__(self):
        super().__init__()
        uic.loadUi('../ui_package/class65.ui', self)
        self.listWidget.clicked.connect(self.clicked)

    def clicked(self, item):
        # 这里就是想做个测试
        s = "data:{},column:{},row:{}\ninternalId:{},model:{},\nflags:{}"
        QMessageBox.information(self, "弹框标题", s.format(item.data(), item.column(), item.row(),
                                                            item.internalId(), item.model(), item.flags()))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = my_form()
    main.show()
    sys.exit(app.exec_())


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值