目录
1.1 插入QPushButtton,并响应Button事件
1. 在QTableWidget中插入QWiget
1.1 插入QPushButtton,并响应Button事件
QPushButton *pBtn = new QPushButton();
connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClicked()));
ui.tableWidget->setCellWidget(_row, _column, pBtn);
基于上面添加QPushButton的方式,获取button所在QTableWidget的行和列:
QPushButton *obj= (QPushButton*)sender();
int x = obj->frameGeometry().x();
int y = obj->frameGeometry().y();
QModelIndex index = ui.tableWidget->indexAt(QPoint(x, y));
int row = index.row();
int column = index.column();
注意:上面代码要放在button对应的槽函数中。在某些情况下,不能把button控件直接放到QTableWidget中,这个时候需要添加QWidget设置为button控件的父类,通过添加widget,再将button添加到tableWidget中。如果是这样的话,上面获取button所在行列的方法就不能使用了。那该如何做呢?其实很简单,只需要将button的位置替换为它的父类QWidget即可:
QPushButton *obj = (QPushButton*)sender();
QWidget *_widget = obj->parentWidget();
int x = _widget->frameGeometry().x();
int y = _widget->frameGeometry().y();
1.2 插入QComboBox、QLineEdit等控件
QTableWidget