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
請大家多多支持,點贊、評論和加關注!謝謝!