找回密码
 立即注册

怎么实现左右花东光切换窗口显示?

发表于 2017-12-6 21:35:02 | 显示全部楼层 |阅读模式
10Qter豆
最近想实现利用鼠标事件实现左右滑动窗口?怎么实现?

回复

使用道具 举报

发表于 2017-12-7 09:09:13 | 显示全部楼层
哪个鼠标事件呢?是双击?单击?还是拖动?又是哪个窗口呢?主窗口还是子窗口?

点评

拖动,切换子窗口拖动,切换子窗口  详情 回复 发表于 2017-12-8 22:28
回复

使用道具 举报

 楼主| 发表于 2017-12-8 22:28:18 | 显示全部楼层
阿玛 发表于 2017-12-7 09:09
哪个鼠标事件呢?是双击?单击?还是拖动?又是哪个窗口呢?主窗口还是子窗口? ...

拖动,切换子窗口拖动,切换子窗口
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
lejing 发表于 2017-12-8 22:28
拖动,切换子窗口拖动,切换子窗口

重新实现鼠标按下,移动,释放事件
void LoginWidget::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt:eftButton)//如果鼠标按下的是左键
    {
        //改变鼠标形状为手掌,表示拖动状态。
        QCursor cursor1;                            //创建光标对象
        cursor1.setShape(Qt::OpenHandCursor);       //设置光标形状
        setCursor(cursor1);
        mouse_press = true;
        //鼠标相对于窗体的位置(或者使用event->globalPos() - this->pos())
        mouse_widget_point = event->pos();;
    }
}
void LoginWidget::mouseMoveEvent(QMouseEvent *event)
{
    //若鼠标被按下
    if(mouse_press)
    {
        mouse_desktop_point = event->globalPos();//鼠标相对于桌面屏幕的位置
        //移动窗体位置
        this->move(mouse_desktop_point - mouse_widget_point);
    }
}
void LoginWidget::mouseReleaseEvent(QMouseEvent *)
{
    //设置鼠标为未被按下
    mouse_press = false;
    //拖动完成后,光标恢复默认形状
    setCursor(cursor);
}
回复

使用道具 举报

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

本版积分规则

lejing

    主题

    帖子

    486

    积分

    Qter3级会员

    Rank: 3Rank: 3

    积分
    486

Qter3级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!