Model / View结构

红色部分是可以直接使用的。

QFileSystemModel;

            

QFileSystemModel的使用:

    头文件:

     QFileSystemModel*  model = nullptr;

    cpp文件:

      model = new  QFileSystemModel;

      model->setRootPath(QDir::currentPath());

      ui->listView->setModel(model);

      ui->treeView->setModel(model);

//需要注意的是,listView  ,  treeView ,  tableView 这三个组件都能用model。

槽函数和信号:

on_treeView_clicked( const QModelIndex  &index ) //index其实是表格项的索引。

model->fileName(index);   //返回去除路径的文件夹名称或文件名

model->filePath(index);    //返回节点的目录名或带路径的文件名

model->type(index);         //返回描述节点类型的文字

QStringListModel;

QStringListModel的使用:

QStringListModel的创建以及将初始化数据放入View控件中:

.h头文件:

 QStringListModel *  theModel = nullptr;

.cpp文件:

 theModel = new  QStringListModel;

QStringList   strlist;

strlist<<"item1"<<"item2"<<"item3"<<"item4"<<"item5";

theModel->setStringList(strlist);

ui->listView->setModel(theModel);

QStringListModel的数据清除:

theModel->rowCount();       //获取模型数据行数

theModel->removeRows(0,theModel->rowCount());  //清除模型数据

QStringListModel的删除当前项数据:

ui->listView->currentIndex().row();      //当前选中的项的行数

theModel->removeRow(ui->listView->currentIndex().row());    //删除当前项

QStringListModel的添加项:

  theModel->insertRow(theModel->rowCount());        //先添加一行

 QModelIndex    index = theModel->index(theModel->rowCount()-1,0);    //设置索引为最后一                                                                                                                             行的索引;

  theModel->setData(index,"new  Item",Qt::DisplayRole);    //在索引处设置添加项以及添加项                                                                                                        的文本

  ui->listView->setCurrentIndex(index);   //将其显示在表格里

QStringListModel的插入项:

 theModel->insertRow(ui->listView->currentIndex().row());        //先添加一行 

  //设置索引为最后一 行的索引;

 QModelIndex    index = theModel->index(ui->listView->currentIndex().row()-1,0);    

 theModel->setData(index,"insert  Item",Qt::DisplayRole);    //在索引处设置添加项以及添加项                                                                                                        的文本

  ui->listView->setCurrentIndex(index);   //将其显示在表格里

QStandItemModel:

QStandardItemModel的使用:

QStandardItemModel的创建以及将初始化数据放入View控件中:

.h头文件

QStandardItemModel *  m_model = nullptr;

.cpp源文件:

m_model  =  new  QStandardItemModel;

QStringList  header;

header<<"Item1"<<"Item2"<<"Item3"<<"Item4"<<"Item5";

m_model->setHorizontalHeaderLabels(header);

QStandardItemModel添加行操作;

int   rowindx  =  m_model->rowCount();    //获取现在表格有几行

rowIndex++;

QString  item1   =   "newItem";

QStandardItem *  Item_item1 = new   QStandardItem(item1);

m_model->setItem(rowindex,0,Item_item1);

QStandardItemModel删除行操作:

rowindex--;

m_model->setRowCount(rowindex);

QStandardItemModel插入行操作:

QModelIndex   index  =  ui->tableview->currentIndex();

m_model->insertRow(index.row());        //插入一行

m_model->setData(index,"new",Qt::DisplayRole);

自定义代理

新建一个类:

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值