QListWidget
来源:互联网 发布:ubuntu opencv安装 编辑:程序博客网 时间:2024/05/22 10:26
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) 得到
将listwidget里的列表横向显示:
setViewMode ()的参数为QListView::IconMode,若为QListView::ListMode,则是一行一行的显示。并且IconMode,列表是可以拖动的,ListMode列表是不能拖动的,如果不想让列表拖动,可以设置setMovement(QListView::Static);
添加item:
//listWidget显示
QListWidgetItem *newItem = new QListWidgetItem;
newItem->setIcon(fileIcon->icon(fi));
newItem->setText(fi.fileName());
newItem->setData(Qt::UserRole, fi.absoluteFilePath());
m_listWidget->addItem(newItem);
删除item:
m_listWidget->removeItemWidget(item);
delete item; //必须加上这一句,不然删除不了
QListWidget中IconMode和ListMode的差别
在使用ListMode的时候,你无法通过
ListWidgetItem->setSizeHint(QSize(155,41));
这种方式修改Item的宽度
需要使用IconMode才可以通过setSizeHint函数修改Item的宽度。
QListView是基于Model,而QListWidget是基于Item。这是它们的本质区别。
往QListView中添加条目需借助QAbstractListModel:
如:
MainWindow::MainWindow(QWidget*parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QStringListModel* slm=new QStringListModel(this);
QStringList* sl=new QStringList();
sl->append("asdfsadfsa");
sl->append("asdfsadfsa");
sl->append("asdfsadfsa");
slm->setStringList(*sl);
ui->listView->setModel(slm);
delete sl;
}
而在QListWidget中添加条目可以直接additem
如:
QListWidget list;
list.setViewMode(QListView::IconMode );//使用图标显示方式
list.setResizeMode(QListView::Adjust);//设置QListView大小改变时,图标的调整模式,默认是固定的,但可以改成自动调整:
list.setMovement(QListView::Static);//设置图标可不可以移动,默认是可移动的,但可以改成静态的:
for(int i =0; i < 100 ; i ++){
QListWidgetItem *item = new QListWidgetItem(&list);
QStyle::StandardPixmap sp = (QStyle::StandardPixmap)(i % 57);
item->setData(Qt::DecorationRole, qApp->style()->standardPixmap(sp).scaled(QSize(16,16), Qt::KeepAspectRatio, Qt::SmoothTransformation) );
item->setData(Qt::DisplayRole,QObject::tr("Item %1").arg(i));
}
- QListWidget
- QListWidget
- QListWidget
- QListWidget
- QListWidget
- QListWidget
- QListWidget
- QlistWidget
- QListwidget
- QListWidget
- QListWidget
- QListWidget
- QListWidget--39
- QListWidget用法
- QListWidget & QTableWidget
- Qt QListWidget
- QListWidget用法
- QListWidget用法
- Iometer存储测试工具
- Windows XP 注册表优化方案
- simple note of minixml
- Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用
- Android自动化测试之Robotium学习(一)
- QListWidget
- 图片流(BufferedImage)与(ByteArrayInputStream )字节流互转
- python实现有线电视宽带登录
- 从联赛到竞赛的知识点流程
- poj 2762 Going from u to v or from v to u? (强联通分量缩点 + 欧拉回路或通路)
- Android自动化测试之Robotium学习(二)
- IBM Power6、7配件FC号描述翻译(unix360.part06)
- VC++中windows下的文件复制、删除、重命名操作
- Android Wifi几点