QWidget ,无边框,窗体无法移动的问题

4 篇文章 0 订阅

#窗口,无边框,无法移动的问题

##.h文件

#include <QMouseEvent>
protected:
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
    QPoint mousePoint;
    bool mouse_press;

##.cpp文件设置

setWindowFlags(Qt::FramelessWindowHint);
void Softdog::mousePressEvent(QMouseEvent *event)
{
 
    if( (event->button() == Qt::LeftButton) ){
        mouse_press = true;
        mousePoint = event->globalPos() - this->pos();
        // event->accept();
    }
    else if(event->button() == Qt::RightButton){
        //如果是右键
        this->close();
    }
}
void Softdog::mouseMoveEvent(QMouseEvent *event)
{
    // if(event->buttons() == Qt::LeftButton){  //如果这里写这行代码,拖动会有点问题
    if(mouse_press){
        move(event->globalPos() - mousePoint);
        // event->accept();
    }
}
void Softdog::mouseReleaseEvent(QMouseEvent *event)
{
    mouse_press = false;
}

问题:这个方法好像没办法获取新建QWidget窗口的焦点,只能获取mainwindow,主窗体的焦点?
比如说

QWidget* widget=new QWidget;
widget->setWindowFlags(Qt::FramelessWindowHint);
widget->show();

这种情况下,把焦点放到这个widget上,也不触发上述三个鼠标槽函数,为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值