• PyQt学习随笔:ListView控件增加列表项


    ListView控件如果需要增加列表项,就是在对应数据存储中插入项,这又分两种情况,一种是已知列表数据存储,一种是未知数据存储。如果是未知数据存储,可以通过:
    ListView控件名.model() 语句获取数据存储。在知道数据存储后,就可以对数据存储进行进行插入操作,简单语句如下:

    数据存储.insertRow(插入位置索引)
    index =数据存储.index(插入位置索引,0)
    数据存储.setData(index,插入项字符串,Qt.DisplayRole)

    以上三个语句,第一个语句是在数据存储指定索引位置扩展一个元素位置,注意索引从0开始,执行插入语句后原位置及其后的元素往后顺移一个位置;
    第二个语句取到该插入序号对应位置的数据元素存储;
    第三个语句将对应插入位置数据存储的数据设置为需要插入显示的内容。

    看个例子:

    def AddListitem(self):
            count = self.itemmodel.rowCount()  #取数据存储数据条数
            selectindex = self.m_ListView.currentIndex() #取当前选择的数据项位置
            if selectindex.isValid():Pos = selectindex.row() #取当前选择的数据项位置的顺序索引
            else: Pos = count #当前没有选择则插入到最后位置
            self.itemmodel.insertRow(Pos)  #执行插入位置元素扩充
            index = self.itemmodel.index(Pos,0) #取插入位置的元素项
            stritem = f'item{Pos+1}'  #设置插入内容
            self.itemmodel.setData(index,stritem,Qt.DisplayRole) #将内容更新到插入位置
    

    上面例子中itemmodel为对应ListView控件m_ListView的存储,如果不知道可以这样来获取:
    itemmodel = self.m_ListView.model()来获取,不过后面对itemmodel 的操作就不能使用self来访问,而是直接通过itemmodel 访问。

    老猿Python,跟老猿学Python!
    博客地址:https://blog.csdn.net/LaoYuanPython

    老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036
    请大家多多支持,点赞、评论和加关注!谢谢!

  • 相关阅读:
    completable 用法
    spring 纯注解方式 与AOP
    springIOC原理加载过程
    多线程手写Future模式
    springMVC 实现redis分布式锁
    java线程池学习
    本地跑 spark ui 报错
    九度oj 题目1452:搬寝室
    九度oj 题目1456:胜利大逃亡
    九度oj 题目1455:珍惜现在,感恩生活
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11931730.html
Copyright © 2020-2023  润新知