QTableWidget中添加很多一样的控件,其中一个控件发射信号后,如何找到发射信号的控件的坐标?

cs10239dn 2016-11-17 04:14:28
QTableWidget中添加很多一样的控件,其中一个控件发射信号后,如何找到发射信号的控件的坐标?

这个表中多次使用了removerow、insertrow之类改变行次序的方法。
如果很多个一样的控件(比如Qpushbutton , 循环使用 ui->tableWidget->setCellWidget(row,column,xxxx);添加),被点击改变时,如何找到发射信号的控件,得到他的坐标?
...全文
401 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Little柯南 2016-11-22
  • 打赏
  • 举报
回复
引用 3 楼 cs10239dn 的回复:
当然,最简单方法还是 QPushButton *button = dynamic_cast<QPushButton *>(QObject::sender()); QModelIndex index = ui->tableWidget->indexAt(button->pos()); index的row column即是 坐标
说白了,还是个识别信号来源的问题。这么写也是可以的。 QObject* sender = QObject::sender(); for(int i=0;i<wbtns.count();i++) { if(sender == wbtns[i]) { //dosomething } }
cs10239dn 2016-11-17
  • 打赏
  • 举报
回复
当然,最简单方法还是 QPushButton *button = dynamic_cast<QPushButton *>(QObject::sender()); QModelIndex index = ui->tableWidget->indexAt(button->pos()); index的row column即是 坐标
cs10239dn 2016-11-17
  • 打赏
  • 举报
回复
引用 1 楼 cs10239dn 的回复:
自答。三种方案: 1.获取pos,根据pos获取item 2.QSignalermap 3.用Qlist记录所有控件位置,发射进来后,用sender获得的指针在list里面找。。。
是 QSignalMapper 打错。。。
cs10239dn 2016-11-17
  • 打赏
  • 举报
回复
自答。三种方案: 1.获取pos,根据pos获取item 2.QSignalermap 3.用Qlist记录所有控件位置,发射进来后,用sender获得的指针在list里面找。。。

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧