C++点击qttableview中的radio button获取当前行号
时间: 2024-02-18 18:59:15 浏览: 67
C++ GUI QT4 随书源码-qt-book-examples
5星 · 资源好评率100%
要获取在QTableView中单选按钮所在的行号,可以使用信号和槽函数来实现。当单选按钮被选中时,将发出信号,并将单元格的行号和列号作为参数传递给槽函数。您可以使用QItemSelectionModel类来获取当前选定的单元格。
以下是一个示例代码:
```cpp
QTableView *tableView = new QTableView(this);
tableView->setModel(model);
// 创建一个QItemSelectionModel对象
QItemSelectionModel *selectionModel = tableView->selectionModel();
// 连接单元格选中信号和槽函数
connect(selectionModel, SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(onSelectionChanged(const QItemSelection &, const QItemSelection &)));
void MyClass::onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
{
QModelIndexList indexList = selected.indexes();
// 遍历选中的单元格,获取行号
for (int i = 0; i < indexList.count(); ++i)
{
QModelIndex index = indexList.at(i);
int row = index.row();
int column = index.column();
// 判断是否是单选按钮所在列
if (column == RADIO_BUTTON_COLUMN)
{
// 获取单选按钮所在的单元格
QModelIndex radioButtonIndex = model->index(row, column);
// 获取单选按钮的状态
bool isChecked = model->data(radioButtonIndex, Qt::CheckStateRole).toBool();
// 如果单选按钮被选中,输出行号
if (isChecked)
{
qDebug() << "Selected row: " << row;
}
}
}
}
```
在上述示例中,RADIO_BUTTON_COLUMN是单选按钮所在的列号,您需要根据实际情况进行更改。
阅读全文