q2110809471 2023-04-14 21:00 采纳率: 38.5%
浏览 16

关于#窗口拖动#的问题,如何解决?


void QDlgLogin::mousePressEvent(QMouseEvent* event)                  一个splash窗口
{
    if (event->button() == Qt::LeftButton)
    {
        m_moving = true;                          //鼠标按下
        m_lastPos = event->globalPos() - pos();               //鼠标上一次位置
    }
    return QDialog::mousePressEvent(event);
}

void QDlgLogin::mouseMoveEvent(QMouseEvent* event)
{
    if (m_moving && (event->button() && Qt::LeftButton) && (event->globalPos() - m_lastPos).manhattanLength() > QApplication::startDragDistance())
    {
        move(event->globalPos() - m_lastPos);
        m_lastPos = event->globalPos() - pos();
    }
    return QDialog::mouseMoveEvent(event);
}

void QDlgLogin::mouseReleaseEvent(QMouseEvent* event)
{
    m_moving = false;
}
大佬们,为什么我用鼠标不能拖动对话框窗口啊
  • 写回答

2条回答 默认 最新

  • threenewbee 2023-04-14 22:09
    关注

    这个,QDlgLogin类似乎是从QDialog类继承的,检查下重写这些事件处理程序的代码的类中忘记将其实例化为QDlgLogin。或在QDialog的setMouseTracking(true)方法下是否启用鼠标跟踪功能。
    还有,对话框窗口被锁定而无法拖动。需要检查对话框属性是否设置为无边框、最大化、最小化以及窗口锁定等

    评论

报告相同问题?

问题事件

  • 创建了问题 4月14日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证