• Qt之去除窗口的标题栏、通过鼠标移动窗口


    设置标题栏图标,位置与大小示例

    #include<QApplication>
    #include<QWidget>
    #include<QDebug>
    #include"mywidget.h"
    int main(int argc,char **argv)
    {
        QApplication app(argc,argv);
        //功能新的需求:不再使用框架提供的窗口,自定义一个窗口;
        //派生类;
        MyWidget w;  //MyWidget类继承于基类QWidget类;
        w.show();
        return app.exec();
    }
    
    
    //------------ MyWidget.h -------------------
    #ifndef MYWIDGET_H
    #define MYWIDGET_H
    #include<QMouseEvent>
    #include <QWidget>
    
    class MyWidget : public QWidget
    {
        Q_OBJECT
    public:
        explicit MyWidget(QWidget *parent = 0);
        void mousePressEvent(QMouseEvent *ev);
        void mouseMoveEvent(QMouseEvent *ev);
        //移动窗口
        void mouseReleaseEvent(QMouseEvent *ev);
        //释放窗口
        //鼠标原始位置
        QPoint posMouseOrigin;
    
    signals:
    
    public slots:
    
    };
    
    #endif // MYWIDGET_H
    
    
    //------------ MyWidget.cpp -------------------
    #include "mywidget.h"
    #include<QDebug>
    #include<QWidget>
    #include<QPoint>
    #include<QMouseEvent>
    MyWidget::MyWidget(QWidget *parent) :
        QWidget(parent)
    {
        this->setWindowTitle("QQ ");
        this->setWindowIcon(QIcon(":/images/po.jpg"));//设置图标
        this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
        this->setGeometry(QRect(950, 55, 350, 250));//可设置窗口显示的方位与大小this->setWindowFlags(Qt::FramelessWindowHint); //去掉标题栏;  } 
    
    //获取鼠标的按下操作 
    void MyWidget::mousePressEvent(QMouseEvent *ev) 
    { 
      this->posMouseOrigin = QCursor::pos(); //cursor是一个光标类;  
    } 
    
    //获得鼠标移动的操作 
    void MyWidget::mouseMoveEvent(QMouseEvent *ev) 
    { 
      QPoint ptMouseNow = QCursor::pos(); 
      QPoint ptDelta = ptMouseNow - this->posMouseOrigin; 
      move(this->pos() + ptDelta); posMouseOrigin = ptMouseNow; 
    } 
    
    //获得鼠标的释放操作;
    void MyWidget::mouseReleaseEvent(QMouseEvent *ev) 
    { 
    }
  • 相关阅读:
    开发人员创建智能客户端的十大理由
    OpenStack 学习资料总结
    VirtualBox启用嵌套VTx/AMDV
    element ui table 表尾合计行 错位优化
    群友酒方,夜夜十次郎
    跨域 Better
    Unity 重命名一个字段,同时不丢失其序列化的值
    C++ static 变量
    编译安装apache2.4
    centos设置crontab定时执行shell脚本
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11404767.html
Copyright © 2020-2023  润新知