qq_38200996 2019-02-28 22:41 采纳率: 0%
浏览 2338

QMouseEvent *event 运行时显示:引发了异常: 读取访问权限冲突。 **event** 是 nullptr。

声明:void mouseMoveEvent(QMouseEvent * event);

定义:
void MainWindow::mouseMoveEvent(QMouseEvent * event)
{

bool left_state = false;

    if (event->buttons() == Qt::LeftButton)***
    {
        left_state = true;
    }
    bool right_state = false;
    if (event->buttons() == Qt::RightButton)
    {
        right_state = true;
    }

}

运行时显示:在***处引发了异常: 读取访问权限冲突。 event 是 nullptr。

  • 写回答

1条回答 默认 最新

  • bostonAlen 2019-02-28 23:24
    关注

    鼠标键拖动的判断一般放在mouseMoveEvent函数中,但是你不能向上例一样来判断,因为该函数的event参数总是返回Qt::NoButton。
    void XXXWidget::mouseMoveEvent(QMouseEvent *event)
    {
    if(event->buttons() & Qt::LeftButton)
    {
    // todo ...
    }
    }

    可以查看qt帮助文档,加深下理解,buuton返回触发这个事件的按钮 肯定只有一个,buttons返回事件产生时按下的按钮 可能不止一个
    http://qt-project.org/doc/qt-5/qmouseevent.html#buttons

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型