QT常用控件——QListView控件
操作系统: 统信UOSv20 Qt版本: 5.11.3
一,简单介绍
QListView将存储在模型中的项显示为简单的非层次列表或图标集合。此类用于提供以前由QListBox和QIconView类提供的列表和图标视图,但使用Qt的模型/视图体系结构提供的更灵活的方法。QListView类是模型/视图类之一,是Qt的模型/视图框架的一部分。
二,常用方法和信号
1. 常用方法
2. QListView::Movement类型
3. 常用信号
三,使用介绍
1. 创建对象及基本设置
QListView *listview = new QListView(this); //创建QListView对象 listview->setGeometry(50, 20, 100, 200); //设置位置和大小 QStringList list; //创建数据显示列表 list.append("苹果"); list.append("香蕉"); list.append("桃子"); //使用数据列表创建数据显示模型 QStringListModel *listmodel = new QStringListModel(list); listview->setModel(listmodel); //设置模型到listview上 listview->setMovement(QListView::Free); //设置数据可以自由拖动 listview->setSpacing(2); //设置数据的间距
2. clicked信号的使用
头文件添加void slotClicked(const QModelIndex &index);槽函数
#include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QListView> #include <QStringListModel> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QListView *listview = new QListView(this); //创建QListView对象 listview->setGeometry(50, 20, 100, 200); //设置位置和大小 QStringList list; //创建数据显示列表 list.append("苹果"); list.append("香蕉"); list.append("桃子"); //使用数据列表创建数据显示模型 QStringListModel *listmodel = new QStringListModel(list); listview->setModel(listmodel); //设置模型到listview上 connect(listview, SIGNAL(clicked(const QModelIndex)), this, SLOT(slotClicked(const QModelIndex))); } Widget::~Widget() { delete ui; } void Widget::slotClicked(const QModelIndex &index) { qDebug() << "选择的水果是:" << index.data().toString(); }