实践过程中出现的小bug:
当我右击view空白处,即我没选中有内容的行时,程序中断,因为我没做位置判断而直接获取行内容赋值给其他变量。
QModelIndex temp = m->index(right_click.row(),1);
解决方案:
判断选中的行是否在我们model的行范围内。
如何获取model的行?
ui.table_view->model()->rowCount();
实际上我们不需要使用
right_click.row() < ui.table_view->model()->rowCount();
因为tableview的显示方式入数组,从下表0到rowCount-1开始表示,而往下空白处 均以-1表示。
那么我们只要判断当前点击的行 等于-1时,即选中的是空白处,不需要进行数据提取。
if( right_click.row() != -1 ){
//do something for you
}else{
}
时间: 2024-11-04 17:25:57