2 Star 10 Fork 7

终點起點/PySide6-UI-Demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
StringListModel.py 3.76 KB
一键复制 编辑 原始数据 按行查看 历史
终點起點 提交于 2024-09-05 14:42 +08:00 . 增加示例
import sys
import os
from PySide6.QtWidgets import *
from PySide6.QtGui import *
from PySide6.QtCore import *
class Demo(QWidget):
_addCount=0
_insertCount=0
def __init__(self, parent=None):
super().__init__(parent)
self.parent = parent
layout = QVBoxLayout()
layout.setAlignment(Qt.AlignmentFlag.AlignTop)
toolBar=QToolBar()
btn=QPushButton('Add')
btn.clicked.connect(self.Add)
toolBar.addWidget(btn)
btn=QPushButton('Insert')
btn.clicked.connect(self.Insert)
toolBar.addWidget(btn)
btn=QPushButton('Delete')
btn.clicked.connect(self.Delete)
toolBar.addWidget(btn)
btn=QPushButton('MoveUp')
btn.clicked.connect(self.MoveUp)
toolBar.addWidget(btn)
btn=QPushButton('MoveDown')
btn.clicked.connect(self.MoveDown)
toolBar.addWidget(btn)
btn=QPushButton('SelectAll')
btn.clicked.connect(self.SelectAll)
toolBar.addWidget(btn)
btn=QPushButton('ClearSelected')
btn.clicked.connect(self.ClearSelected)
toolBar.addWidget(btn)
btn=QPushButton('ShowSelected')
btn.clicked.connect(self.ShowSelected)
toolBar.addWidget(btn)
layout.addWidget(toolBar)
self.listView=QListView()
self.listView.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection)#多选
self.model=QStringListModel()
self.model.setStringList(['item'+str(i) for i in range(10)])
self.listView.setModel(self.model)
layout.addWidget(self.listView)
self.setLayout(layout)
def Add(self):
self._addCount+=1
row=self.model.rowCount()
self.model.insertRow(row)
index=self.model.index(row)
text=f'add-{self._addCount}'
self.model.setData(index,text)
self.parent.OnShowMessage(f"Add Item '{text}' at {index.row()}")
def Insert(self):
index=self.listView.currentIndex()
if index.row()==-1:return
self._insertCount+=1
text=f'insert-{self._insertCount}'
self.model.insertRow(index.row())
self.model.setData(index,text)
self.parent.OnShowMessage(f"Insert Item '{text}' at {index.row()}")
def Delete(self):
index=self.listView.currentIndex()
if index.row()==-1:return
text=self.model.data(index)
self.parent.OnShowMessage(f"Remove Item '{text}' at {index.row()}")
self.model.removeRow(index.row())
def MoveUp(self):
index=self.listView.currentIndex()
if index.isValid()==False:return
row=index.row()
if row>0:
text=self.model.data(index)
self.model.moveRow(QModelIndex(),row,QModelIndex(),row-1)
self.parent.OnShowMessage(f"Move Item '{text}' from {row} to {row-1}")
def MoveDown(self):
index=self.listView.currentIndex()
if index.isValid()==False:return
row=index.row()
if row<self.model.rowCount()-1:
text=self.model.data(index)
self.model.moveRow(QModelIndex(),row+1,QModelIndex(),row)
self.parent.OnShowMessage(f"Move Item '{text}' from {row} to {row+1}")
def SelectAll(self):
self.listView.selectAll()
self.parent.OnShowMessage(f"Select All Item")
def ClearSelected(self):
self.listView.clearSelection()
self.parent.OnShowMessage(f"Clear Selected")
def ShowSelected(self):
selectedText=''
for index in self.listView.selectedIndexes():
text=self.model.data(index)
selectedText+=f'row:{index.row()},text:{text} \n'
self.parent.OnShowMessage(f"Selected Item:\n{selectedText}")
def runDemo(parent):
wigdet = Demo(parent)
return wigdet
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/johnjiangw/pyside6-ui-demo.git
git@gitee.com:johnjiangw/pyside6-ui-demo.git
johnjiangw
pyside6-ui-demo
PySide6-UI-Demo
master

搜索帮助