运行图
.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include <QStringListModel>
#include <QModelIndex>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic: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