• 7964阅读
  • 4回复

[提问]请教个QTableWidget中添加QPushButton后的响应问题 [复制链接]

上一主题 下一主题
离线mixer
 
只看楼主 正序阅读 楼主  发表于: 2011-06-15
QTableWidget的列数固定,行数由传入的数据量决定,每个行的0列为数据,1、2列为编辑、删除按钮QPushButton。所以添加按钮及connect信号/槽在for循环中做,通过按钮操作(对应行,0列)的数据。
现在的问题是,按钮的clicked()信号发给槽doModify、doDel时,槽并不知道发送者的位置,而如果没有点击过TableWidget本身的话,currentIndex也不能利用,造成槽的动作无法定位0列的数据。
请教高手,是不是有别的办法?
离线mixer
只看该作者 4楼 发表于: 2011-06-16
感谢回复,不过前天另想个办法.
在button的slot函数中,从sender得到button指针,根据这个button的位置(x,y),由tablewidget->itemAt(x,y)可得到modelindex,其中itemAt不受scroll影响.
用这个方法的好处是,从modelindex开始,能完全操作tablewidget.
离线weiweiqiao

只看该作者 3楼 发表于: 2011-06-15
你试着调用QTableWidget::activateWindow()和QTableWidget::setCurrentCell ( int 0, int 0),始终将将控件激活。
Jobs Insanely Great.
离线zhangyueyi87
只看该作者 2楼 发表于: 2011-06-15
简单,设置按钮ui->pushButton->setFocusPolicy(Qt::NoFocus);
并在构造函数中设置ui->tableWidget->setFocus();
离线mixer
只看该作者 1楼 发表于: 2011-06-15
最简单的办法,大概是不添加按钮,点击某行后再new出来,这样就很容易确定是在操作哪个数据。不过,感觉不太地道。
快速回复
限100 字节
 
上一个 下一个