找回密码
 立即注册
收起左侧

QWidgetTableItem 右键菜单获取数据的问题

12
回复
7690
查看
[复制链接]
累计签到:18 天
连续签到:1 天
来源: 2016-1-25 11:42:17 显示全部楼层 |阅读模式
1Qter豆
m_item = this->TabAch_ArchInfoList->itemAt(pos);

第一遍右键点击的时候,获取的m_item为null,第二次就正常。。。每次窗口打开都是以如此,
为什么呢?

最佳答案

查看完整内容

itemAt 的起始点 TabAch_ArchInfoList 的左上角, 你的pos应该是TabAch_ArchInfoList 的父窗口的坐标,估计是你没做坐标的偏移 一般QT没什么问题的,肯定你的代码写的不对...
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-25 11:42:18 显示全部楼层
itemAt 的起始点 TabAch_ArchInfoList 的左上角, 你的pos应该是TabAch_ArchInfoList 的父窗口的坐标,估计是你没做坐标的偏移
一般QT没什么问题的,肯定你的代码写的不对...
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-1-25 11:58:14 显示全部楼层
我发现QT 真的很多不可预见的问题。。。无意中加入一句中文后,问题就没有了。。。qt里中文问题。。真的很严重
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-1-25 17:27:18 显示全部楼层
konin 发表于 2016-1-25 11:58
我发现QT 真的很多不可预见的问题。。。无意中加入一句中文后,问题就没有了。。。qt里中文问题。。真的很 ...

你在什么地方加的什么中文啊?
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-1-26 16:28:29 显示全部楼层
yafeilinux 发表于 2016-1-25 17:27
你在什么地方加的什么中文啊?

设置dialog的标题。反正不知道为啥。。。加之前呢。。连续点2下才能依据pos获取到item,加之后呢,就正常了。。。啥也没干啊。。。另外,如果中文汉字是奇数个就是乱码,偶数个就没有问题。。。
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-1-27 19:21:32 显示全部楼层
shencj1234 发表于 2016-1-27 17:38
itemAt 的起始点 TabAch_ArchInfoList 的左上角, 你的pos应该是TabAch_ArchInfoList 的父窗口的坐标,估计 ...

这样啊 。。怎么偏移呢 ?
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-27 23:05:03 显示全部楼层
你贴完整点的代码我看看吧...
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-1-28 09:03:38 显示全部楼层
shencj1234 发表于 2016-1-27 23:05
你贴完整点的代码我看看吧...

    m_popMenu = new QMenu(TabAch_ArchInfoList);//给tablewidget 添加menu
    m_detailAction = new QAction("详情 ",TabAch_ArchInfoList);//action基于tablewidget
   connect(m_detailAction,SIGNAL(triggered()),this,SLOT(rightClickedDetailAction()));//action 触发


在右键tablewidget的时候触发:
    m_item = this->TabAch_ArchInfoList->itemAt(pos);//依据pos获取item
    m_popMenu->addAction(m_detailAction); //弹出菜单
    m_popMenu->exec(QCursor::pos());
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-28 10:55:59 显示全部楼层
在右键tablewidget的时候触发 ??是触发哪个函数?
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-1-28 11:30:58 显示全部楼层
shencj1234 发表于 2016-1-28 10:55
在右键tablewidget的时候触发 ??是触发哪个函数?

触发customContextMenuRequested
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-28 11:43:10 显示全部楼层
konin 发表于 2016-1-28 11:30
触发customContextMenuRequested

        QPoint ptOffset = mapToGlobal(TabAch_ArchInfoList->viewport()->pos()) - mapToGlobal(pos);
        m_item = this->TabAch_ArchInfoList->itemAt(ptOffset);
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-28 11:52:10 显示全部楼层
konin 发表于 2016-1-28 11:30
触发customContextMenuRequested

        QPoint ptOffset = mapToGlobal(TabAch_ArchInfoList->pos()) - mapToGlobal(pos);
        m_item = this->TabAch_ArchInfoList->itemAt(ptOffset);
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-28 13:35:33 显示全部楼层
        QPoint ptOffset = mapToGlobal(TabAch_ArchInfoList->pos()) - mapToGlobal(pos);
        m_item = this->TabAch_ArchInfoList->itemAt(ptOffset);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了