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();
}
