http://www.qtcn.org/bbs/read-htm-tid-51835.html

http://www.qtcn.org/bbs/simple/?t43841.html

比如(点击每行最后的QPushButton,删除这行)

实现思路:
1写一个button类,继承自QPushButton,使其具有一个信号sendPointer(button*),这个信号可以发射button自己的指针。并把clicked()信号和这个信号connect在一起。
2在QTableWidget中写槽函数getPointer(button*)接收被点击按钮的指针。
3在QTableWidget中点击button,触发clicked()信号->触发sendPointer()->槽getPointer(button*),槽函数做两件事:
a接收被点击按钮的指针。
b用QWidget* cellWidget(int row, int column)遍历QTableWidget中所有的QWidget,把得到的QWidget指针进行类型转换,转换成button类,然后与得到的指针比较。两枚指针一致,则知道button所在行列。

===
这个问题有很多实现办法。比如用委托。
上面是我的实现。已成功。

mixer 2011-06-15 06:40

请教个QTableWidget中添加QPushButton后的响应问题

QTableWidget的列数固定,行数由传入的数据量决定,每个行的0列为数据,1、2列为编辑、删除按钮QPushButton。所以添加按钮及connect信号/槽在for循环中做,通过按钮操作(对应行,0列)的数据。
现在的问题是,按钮的clicked()信号发给槽doModify、doDel时,槽并不知道发送者的位置,而如果没有点击过TableWidget本身的话,currentIndex也不能利用,造成槽的动作无法定位0列的数据。
请教高手,是不是有别的办法?

mixer 2011-06-15 07:03
最简单的办法,大概是不添加按钮,点击某行后再new出来,这样就很容易确定是在操作哪个数据。不过,感觉不太地道。
zhangyueyi87 2011-06-15 09:07
简单,设置按钮ui->pushButton->setFocusPolicy(Qt::NoFocus);
并在构造函数中设置ui->tableWidget->setFocus();
weiweiqiao 2011-06-15 09:10
你试着调用QTableWidget::activateWindow()和QTableWidget::setCurrentCell ( int 0, int 0),始终将将控件激活。
mixer 2011-06-16 22:00

感谢回复,不过前天另想个办法.
在button的slot函数中,从sender得到button指针,根据这个button的位置(x,y),由tablewidget->itemAt(x,y)可得到modelindex,其中itemAt不受scroll影响.
用这个方法的好处是,从modelindex开始,能完全操作tablewidget.

int x = obj->frameGeometry().x();//obj为你QPushButton
int y = obj->frameGeometry().y();

QModelIndex index = m_pTableWidget->indexAt(QPoint(x,y));

int row = index.row();
int column = index.column();

点击得到QTableWidget中任意位置QPushButton的行列信息的更多相关文章

  1. [转载]GridView中点击某行的任意位置就选中该行

    原文链接:http://www.cnblogs.com/Echo529/p/4521701.html GridView中点击某行的任意位置就选中该行 分类: 第一步:添加选择列 点击GridView右 ...

  2. GridView中点击某行的任意位置就选中该行

    GridView中点击某行的任意位置就选中该行 -- :: 分类: 第一步:添加选择列 点击GridView右边小尖头,双击CommandField,选中"选择",添加,将起设置为不可见: 第二步:处 ...

  3. GridView中实现点击某行的任意位置就选中该行

    来源:http://auv2009.blog.163.com/blog/static/68858712200992731010670/ 在 GridView中增加一列:(该列是选择按钮,让其不显示) ...

  4. Spring 中任意位置获取 session 和 request

    在web.xml中添加监听: <listener> <listener-class>org.springframework.web.context.ContextLoaderL ...

  5. jQuery如何追加tr到table中任意位置--向Table中指定位置添加tr或td(jQuery)

    jQuery 添加新内容有以下四个方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() ...

  6. NPOI 实现在已存在的Excel中任意位置开始插入任意数量行,并填充数据

    1 npoi版本2.1.3.1 2 需要添加的引用: using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using System.IO;using N ...

  7. 点击任意位置关闭(CocosCreator)

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321  我的个人博客       今天,接触到一个新功能,当弹出某个弹框时,需要点击除弹框的剩余任意位置,来关闭该弹框,例如:当红框内 ...

  8. 关于delphi点击webbrowser中任意一点的问题

    关于delphi点击webbrowser中任意一点的问题 有时候我们需要delphi载入webbrowser1打开网页的时候 需要点击某一个点的位置 可能是坐标 可能是按钮 可能是其他的控件应该如何来 ...

  9. Android点击其他任意位置收起软键盘

    在Android应用开发中,经常出现这样的需求,用户在输入文字的过程中,可能不想继续输入了,通过滑动或者点击其他位置(除软键盘和EditText以外的任何位置),希望能够自动收回键盘,这个功能可能有些 ...

随机推荐

  1. delphi DCC32命令行方式编译delphi工程源码

    本文链接地址:http://blog.csdn.net/sushengmiyan/article/details/10284879 作者:苏生米沿 Borland出品的Delphi,在TIOBE公布的 ...

  2. Android 自定义view实现水波纹效果

    http://blog.csdn.net/tianjian4592/article/details/44222565 在实际的开发中,很多时候还会遇到相对比较复杂的需求,比如产品妹纸或UI妹纸在哪看了 ...

  3. android Graphics(一):概述及基本几何图形绘制

    前言:我最近想抽空研究研究android的各种特效,android的特效真是其它平台无法比拟的,而且一个漂亮的UI交互,会给APP增色不少,而学习特效之前,有关graphics绘图的基础知识是必不可少 ...

  4. java.lang.NoClassDefFoundError: org.ksoap2.transport.HttpTransportSE异常处理

    原因就是没有打包进去  因为引用进去 编译时没出出现问题 解决如下

  5. android术语笔记

    参考:http://blog.csdn.net/luoshengyang/article/details/6618363 http://blog.csdn.net/singwhatiwanna/art ...

  6. IOS7修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色

    解决方法 1: 自从IOS7后UINavigationBar的一些属性的行为发生了变化.你可以在下图看到: 现在,如果你要修改它们的颜色,用下面的代码: 1 2 3 4 self.navigation ...

  7. 在线QQ客服

    代码一: <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=451314789&si ...

  8. Flask web应用

    Flask web应用 一.介绍 最近开发要用一个测试环境,是这样的Nginx+uwsgi+flask 的一个结构.下面是一些记录,在Centos 系统上使用Flask 架构部署一个简单的Python ...

  9. 使用jstl 截取字符串

    时常碰见这样的 问题:获取数据库中的文本域的时候经常是在p标签中的,在页面显示的时候也是带着p标签,如何去除p标签呢 这里提供一个使用jstl的方式 1.首先导入jstl的函数标签库 <%@ t ...

  10. python 正则表达式汇总

    一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...