赞
踩
感谢这位博主的分享!!!
- QListView listview; //创建QListView对象
-
- QStringList list; //创建数据显示列表
- list.append("苹果");
- list.append("香蕉");
- list.append("桃子");
-
- //使用数据列表创建数据显示模型
- QStringListModel *listmodel = new QStringListModel(list);
- listview.setModel(listmodel); //设置模型到listview上
-
- listview.setMovement(QListView::Free); //设置数据可以自由拖动
- listview.setSpacing(2); //设置数据的间距
-
- listview.show();
效果:
思考:
可以拖拽item到最下面,相当于在尾部添加了一个item。
而拖拽到已存在的item上时,该item值会被覆盖。
使用这种移动模式:无法移动项目。
可以自由移动,移动时会捕捉到网格
效果图:
代码:
- #include "listview.h"
- #include "ui_listview.h"
-
- listview::listview(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::listview)
- {
- ui->setupUi(this);
- view=new QListView; //创建QListView对象
- view->setGeometry(30,30,100,300);
- QStringList list; //创建数据显示列表
- list.append("苹果");
- list.append("香蕉");
- list.append("桃子");
-
- //使用数据列表创建数据显示模型
- QStringListModel *listmodel = new QStringListModel(list);
- view->setModel(listmodel); //设置模型到listview上
-
- view->setMovement(QListView::Snap); //设置数据可以自由拖动
- view->setSpacing(2); //设置数据的间距
-
- view->show();
- }
-
- listview::~listview()
- {
- delete ui;
- }
-
- void listview::on_spinBox_valueChanged(int arg1)
- {
- view->setSpacing(arg1);
- }
测试:
数据图:
代码:
connect(view,SIGNAL(clicked(QModelIndex)),this,SLOT(slotClicked(QModelIndex)));
- void listview::slotClicked(const QModelIndex &index)
- {
- ui->label->setText("选择的水果是:"+index.data().toString());
- }
效果:
qt的ListView中设置setIndexWidget_listview 默认index-CSDN博客
代码:
listView与widget的组合------相关demo
- #include <QListView>
- #include <QStandardItemModel>
- #include <QCheckBox>
-
- QListView view;
- QStandardItemModel *model = new QStandardItemModel(&view);
- view.setModel(model);
- //view与model绑定
- //view是页面
- //model是背后的数据
- for(int i = 0; i < 5; i++) {
- QStandardItem *item = new QStandardItem(QString::number(i));
- model->appendRow(item);
- //model与item:
- //model中包含许多的item
- //item就是model的一组数据
- QModelIndex index = model->indexFromItem(item);
- //根据item得到model中对应的modelIndex
- QCheckBox *box = new QCheckBox( &view);
- box->setCheckable(true);
- box->setCheckState(Qt::Unchecked);
- box->setText("ssss");
-
- view.setIndexWidget(index, box);
- //对应关系:item-----index-----widget
- }
- view.show();
效果图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。