Qt中如何获取绑定控件所在的item

jveak 2015-11-17 11:08:57
我写了一个qtreewidget在每一个item中都绑定了一个qpushbutton按钮,想在点击时同时选中该行,现在无法实现。
...全文
460 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39498425 2017-12-28
  • 打赏
  • 举报
回复
引用 5 楼 jveak 的回复:
[quote=引用 2 楼 zyq5945 的回复:] QTreeWidgetItem * QTreeWidget::itemAt(const QPoint & p) const
这个我也试了,点击按钮的时候获取的pos很怪,不能很准确的选出我要的那行[/quote] void DEMO::slot_onClickModify() { QPushButton *senderObj = qobject_cast<QPushButton*>(sender()); if(senderObj == nullptr) { return; } QTreeWidgetItem *item =m_treeShipPlan->itemAt(QPoint(senderObj->parentWidget()->frameGeometry().x(),senderObj->parentWidget()->frameGeometry().y())); QString str = item->text(3); } 我的button是在一个widget里面,所以这么调他的父窗口是可以正常获取到所在行的内容,在这里分享给需要的朋友。
man_cth 2017-06-22
  • 打赏
  • 举报
回复
引用 6 楼 man_cth 的回复:
[quote=引用 4 楼 jveak 的回复:] [quote=引用 3 楼 cuzn1024 的回复:] 变通的办法也有:比如QPushButton::setProperty
一开始想找一个类似setdata的函数没找到,谢谢啦,用这个方解决了[/quote] 楼主你好,请问这个问题是怎么解决的?现在遇到了同样的问题,谢谢!!![/quote] 问题解决了,根据QWidget* pFocusWidget = QApplication::focusWidget();获取到当前的控件,之前把控件和控件所在的item用map绑定到了一起,获取到widget之后,由map找到qtreewidgetitem就可以了。
man_cth 2017-06-20
  • 打赏
  • 举报
回复
引用 4 楼 jveak 的回复:
[quote=引用 3 楼 cuzn1024 的回复:] 变通的办法也有:比如QPushButton::setProperty
一开始想找一个类似setdata的函数没找到,谢谢啦,用这个方解决了[/quote] 楼主你好,请问这个问题是怎么解决的?现在遇到了同样的问题,谢谢!!!
jveak 2015-11-17
  • 打赏
  • 举报
回复
引用 2 楼 zyq5945 的回复:
QTreeWidgetItem * QTreeWidget::itemAt(const QPoint & p) const
这个我也试了,点击按钮的时候获取的pos很怪,不能很准确的选出我要的那行
jveak 2015-11-17
  • 打赏
  • 举报
回复
引用 3 楼 cuzn1024 的回复:
变通的办法也有:比如QPushButton::setProperty
一开始想找一个类似setdata的函数没找到,谢谢啦,用这个方解决了
  • 打赏
  • 举报
回复
变通的办法也有:比如QPushButton::setProperty
zyq5945 2015-11-17
  • 打赏
  • 举报
回复
QTreeWidgetItem * QTreeWidget::itemAt(const QPoint & p) const
jveak 2015-11-17
  • 打赏
  • 举报
回复
其实就是不知道点击按钮到底是哪行的控件,有没有方法能获取到

16,216

社区成员

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

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