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();