QTableView增加QPushButton、QToolButton等控件:
QToolButton *EditBtn=new QToolButton(); EditBtn->setIcon(QIcon(":/Icon/edit.png")); EditBtn->setIconSize(QSize(15,15)); EditBtn->setStyleSheet("background:transparent;border:0px;"); EditBtn->setIcon(QIcon(":/Icon/edit.png"));//增加图片显示 EditBtn->setObjectName(QString::number(UserList.at(i).Id));//关联QToolButton名字,方便点击事件具体到数据行 ui->mainTable->setIndexWidget(model->index(1 , 4), EditBtn); connect(EditBtn , SIGNAL(clicked()) , this , SLOT(EditUser()));
点击事件:
QToolButton *senderObj=qobject_cast<QToolButton*>(sender()); if(senderObj == nullptr) { return; } QString name=senderObj->objectName();//得到名字 //删除方法需要下面两行代码,因为需要刷新//QModelIndex idx =ui->mainTable->indexAt(QPoint(senderObj->frameGeometry().x(),senderObj->frameGeometry().y())); //int row=idx.row();