http://blog.sina.com.cn/s/blog_4b5039210100h6v7.html
参考资料:QT documentation
QListWidget是一个列表框,使用非常简单:它的继承关系:
例子:
# !/usr/bin/python
import sys
from PyQt4.QtGui import *
from PyQt4 import QtCore
class ListWidget(QMainWindow):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setWindowTitle('ListWidget')
self.List = QListWidget(self)
self.List.setSortingEnabled(1)
item = ['OaK','Banana','Apple',' Orange','Grapes','Jayesh']
listItem = []
for lst in item:
listItem.append(QListWidgetItem(lst))
for i in range(len(listItem)):
self.List.insertItem(i+1,listItem[i])
self.setCentralWidget(self.List)
app = QApplication(sys.argv)
tb = ListWidget()
tb.show()
app.exec_()
其中的self.List.setSortingEnabled(1)是排序,按字母来的,如果没有这句,默认是不排序的。
结果:
listWidget = QListWidget() #实例化一个(item base)的列表
listWidget.addItem('dd') #添加一个项
listWidget.addItems([]) # 从序列中添加子项
listWidget.setDragEnabled(True) #设置拖拉
listWidget.sortItems() #排序
listWidget.selectAll()全选
listWidget.setSortingEnabled(bool) #设置自动排序
listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) #设置选择模式
选择模式有:ExtendedSelection 按住ctrl多选, SingleSelection 单选 MultiSelection 点击多选 ContiguousSelection 鼠标拖拉多选
listWidget.setCurrentRow(0) 设置当前选择行 默认为-1
listWidget.count() #得到子项总数
listWidget.item(row).text() #得到第 row 行的内容 listWidget.item(row) 返回一个item 对象
listWidget.takeItem(row) #返回row 行的 所在的item 对象 可以用在 insertItem()中
listWidget.insertItem(2,item) #在第二行插入一项 item 可谓为一个listviewitem对象 或者string
listWidget.setCurrentItem('dd') #设置'dd'为当前项
listWidget.selectedItems() 返回一个 包含item对象 的list 对象
修改item 的内容
item.setText('dsds') # 设置item的内容为dsds item为对象 可从 listWidget.item(row) takeItem(row) 得到