当前位置: 代码迷 >> QT开发 >> QTableView怎么删除其中的一行
  详细解决方案

QTableView怎么删除其中的一行

热度:31   发布时间:2016-04-25 04:36:14.0
QTableView怎样删除其中的一行
我设置了一个QtableView来显示数据,用QStandardItemModel设置其表格,用QStandardItem设置其内容,我知道怎么添加,然后不知道怎么删除其中的一行。比如说我的表格里有个IP列,我想根据IP的来删除IP所在那一行。
这是我的代码:
C/C++ code
    m_model.setColumnCount(4);    m_model.setRowCount(4);    ui.tableView->setModel(&m_model);    m_model.setHeaderData(0,Qt::Horizontal,tr("客户端IP"));    m_model.setHeaderData(1,Qt::Horizontal,tr("客户端DNS"));    m_model.setHeaderData(2,Qt::Horizontal,tr("客户端MAC"));    m_model.setHeaderData(3,Qt::Horizontal,tr("接受到的数据"));if (FD_ISSET(SOCK_conn,&fdread))            {                QStandardItem *myItem = NULL;                if (recv(SOCK_conn,(char*)&myA,sizeof(ClientInfo1),0) != 0)                {                                        myItem = new QStandardItem;                    myItem->setText(inet_ntoa(TempAddr.sin_addr));                    m_model.setItem(row,coloumn,myItem);                    coloumn++;                    myItem = new QStandardItem;                    myItem->setText(tr(myA.Client_DNS));                    m_model.setItem(row,coloumn,myItem);                    coloumn++;                    myItem = new QStandardItem;                    myItem->setText(tr(myA.Client_MAC));                    m_model.setItem(row,coloumn,myItem);                    coloumn++;                    myItem = new QStandardItem;                    myItem->setText(tr(myA.recvData));                    m_model.setItem(row,coloumn,myItem);                    coloumn = 0;                }row++;

求高手帮忙,怎样获取客户端IP所在行,然后删除它所在行,急!急!急!

------解决方案--------------------
这还不够详细啊?好吧我就你上面定义的变量给你写写:
C/C++ code
QList<QStandardItem *> tList = m_model.findItems ("192.168.10.2");QStandardItem* tItem = tList.at(0);int row  = tItem.row();m_model.removeRow(row);
------解决方案--------------------
4楼+1