恋上小鹿的叶子
工程师
工程师
  • 最后登录2022-10-01
  • 发帖数324
  • 金币3083枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:770回复:7

关于Qt控件绑定Halcon窗体后mouseMoveEvent事件不能实时接收的问题。

楼主#
更多 发布于:2022-01-25 10:32
Qt控件绑定Halcon窗体后设置setMouseTracking(true)后mouseMoveEvent事件不能实时接收必须按下按键移动才能接收。有啥好的解决办法目前想到的就是上面放一个透明图层将事件传给halcon窗体。
喜欢0

最新打赏:0人

滑天下之大稽
助理工程师
助理工程师
  • 最后登录2022-09-30
  • 发帖数215
  • 金币1893枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2022-01-25 13:11
你要设置两次才行   this->setMouseTracking(true);//父窗体必须为true  子控件才能实时追踪 在设置控件前先把主窗体设置为true
恋上小鹿的叶子
工程师
工程师
  • 最后登录2022-10-01
  • 发帖数324
  • 金币3083枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
板凳#
发布于:2022-01-25 13:32
滑天下之大稽:你要设置两次才行   this->setMouseTracking(true);//父窗体必须为true  子控件才能实时追踪 在设置控件前先把主窗体设置为true回到原帖
不行的你试过了吗?
滑天下之大稽
助理工程师
助理工程师
  • 最后登录2022-09-30
  • 发帖数215
  • 金币1893枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
地板#
发布于:2022-01-25 14:03
试过的  我这样就可以了
恋上小鹿的叶子
工程师
工程师
  • 最后登录2022-10-01
  • 发帖数324
  • 金币3083枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
4楼#
发布于:2022-01-25 14:16
滑天下之大稽:试过的  我这样就可以了回到原帖
我试了不行的必须要按下鼠标才可以的
ldcah
技术员
技术员
  • 最后登录2022-09-29
  • 发帖数14
  • 金币273枚
  • 贡献勋章0枚
5楼#
发布于:2022-01-26 12:39
也再寻找这个方法,目前  只能仿造鼠标移动 事件,没找到区分鼠标那个键按下的情况.
bool Mylabel::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == this)
    {

...

if(event->type()==QEvent::Enter)
        {
            QMouseEvent *mouseEvent = (QMouseEvent *)event;


            if(mouseEvent->button()==Qt::LeftButton)
            {
                qDebug("Qt::LeftButton");
            }

            QMouseEvent eve( (QEvent::MouseMove), QPoint(mouseEvent->pos().x(),mouseEvent->pos().y()),
                             Qt::NoButton,
                             Qt::NoButton,
                             Qt::NoModifier   );

             this->LableMouseMove(&eve);
        }

}
恋上小鹿的叶子
工程师
工程师
  • 最后登录2022-10-01
  • 发帖数324
  • 金币3083枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
6楼#
发布于:2022-01-26 13:14
ldcah:也再寻找这个方法,目前  只能仿造鼠标移动 事件,没找到区分鼠标那个键按下的情况.
bool Mylabel::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == this)
...
回到原帖
你这个方法可以
chennanx
技术员
技术员
  • 最后登录2022-09-28
  • 发帖数134
  • 金币245枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2022-01-29 15:51
滑天下之大稽:你要设置两次才行   this->setMouseTracking(true);//父窗体必须为true  子控件才能实时追踪 在设置控件前先把主窗体设置为true回到原帖
我也是不行,但是我觉得这个可能不是qt的问题。因为设置tracking以后,把halcon部分代码注释只使用qt的类库是没问题得,但是加入halcon算子GetMposition等,就有问题。怀疑跟halcon得异常机制有关。。。
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服