运行图
.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QStringListModel>
#include <QModelIndex>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void itemClick(QModelIndex index);
private:
Ui::Widget *ui;
QStringListModel *Model;
};
#endif // WIDGET_H
.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QStringList strlist; //字符串列表
strlist<<"A"<<"B"<<"C"<<"D"; //也可以:strlist.append("A");...
Model = new QStringListModel(strlist);//QStringListModel将QStringList包装了起来
ui->listView->setModel(Model); //填充到listview
//设置item内容不可编辑
ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//border:0px 设置listView无边框
//QListView::item:hover 鼠标移到item时该item的样式
//QListView::item:selected 鼠标点击选中item时该item的样式
ui->listView->setStyleSheet(
"QListView{border:0px;}"
"QListView::item:hover{"
"background:rgb(100,149,237);color:rgb(255,255,255);"
"}"
"QListView::item:selected{"
"background:rgb(65,105,225);color:rgb(255,255,255);"
"}");
//建立信号和槽,点击某个item时触发执行itemClick函数
connect(ui->listView,SIGNAL(clicked(QModelIndex)),
this,SLOT(itemClick(QModelIndex)));
}
Widget::~Widget()
{
delete ui;
}
void Widget::itemClick(QModelIndex index)
{
QString str;
str = index.data().toString();//获取当前点击项数据
qDebug()<<"str:"<<str;
}
.ui