#include "widget.h"
#include "ui_widget.h"
#include <QStringListModel>
#include <QDebug>
#include <QMenu>
#include <QLineEdit>
QStringListModel *model;
QMenu *menu;
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
model = new QStringListModel(this);
model->setStringList(QStringList()<<"语文"<<"数学"<<"英语");
ui->listView->setModel(model);
QModelIndex index1 = model->index(1);
QModelIndex index2 = model->index(2);
QLineEdit *lineEdit = new QLineEdit(ui->listView);
lineEdit->setText("数学");
ui->listView->setIndexWidget(index1,lineEdit);
ui->listView->setCurrentIndex(index2);
// //item1->setData("班级");
// //item1->setIcon();
// //item1->setFlags();
// QStandardItem *item00 = new QStandardItem("张三");
// QStandardItem *item10 = new QStandardItem("张四");
// QStandardItem *item20 = new QStandardItem("张五");
// QStandardItem *item01 = new QStandardItem("男");
// QFont font = item01->font();
// //设置为粗体
// font.setBold(true);
// //字体大小
// font.setPointSize(12);
// //设置字体
// item01->setFont(font);
// //设置字体颜色
// item01->setForeground(QBrush(QColor(255, 0, 0)));
// //文本对齐格式
// item01->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
// QStandardItem *item11 = new QStandardItem("女");
// QStandardItem *item21 = new QStandardItem("男");
// QStandardItem *item02 = new QStandardItem("15");
// QStandardItem *item12 = new QStandardItem("14");
// QStandardItem *item22 = new QStandardItem("16");
// model->setItem(0,0,item00);
// model->setItem(1,0,item10);
// model->setItem(2,0,item20);
// model->setItem(0,1,item01);
// model->setItem(1,1,item11);
// model->setItem(2,1,item21);
// model->setItem(0,2,item02);
// model->setItem(1,2,item12);
// model->setItem(2,2,item22);
//// qDebug()<<model->item(0,0)->data().toString();
//// model->item(0,0)->icon();
//// model->item(0,0)->flags();
// ui->tableView->setModel(model);
// //去除选中虚线框
// ui->tableView->setFocusPolicy(Qt::NoFocus);
//// //设置列宽
// ui->tableView->setColumnWidth(0,100);
// ui->tableView->setColumnWidth(1,100);
// ui->tableView->setColumnWidth(2,200);
//// //需要打开右键菜单属性,则必须设置
//// ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
// //设置最后一栏自适应长度
// ui->tableView->horizontalHeader()->setStretchLastSection(true);
// //设置列内容自适应宽度
// //ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
// //设置为可以选中多个目标,按ctrl键
// ui->tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
// //开启交替行背景色,在设置style为交替颜色时必须开启
// //ui->tableView->setAlternatingRowColors(true);
// //设置整行选中
// ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
// //设置选择多行
// ui->tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
// ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
// //ui->tableView->horizontalHeader()->setVisible(false);//是否显示水平表头
// //ui->tableView->verticalHeader()->setVisible(false);//是否显示垂直表头
//打开右键菜单属性
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
//右键菜单
menu = new QMenu(ui->listView);
menu->addAction("添加");
menu->addAction("删除");
//响应右键菜单信号槽
connect(ui->listView,&QListView::customContextMenuRequested,
this,&Widget::slotCustomContextMenuRequested);
}
Widget::~Widget()
{
delete ui;
}
void Widget::slotCustomContextMenuRequested(const QPoint &pos)
{
menu->exec(ui->listView->mapToGlobal(pos));
}
void Widget::on_listView_clicked(const QModelIndex &index)
{
qDebug()<<model->data(index).toString();
}
评论0