zoukankan      html  css  js  c++  java
  • 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) 
    { 
    }
  • 相关阅读:
    Linux 环境下umount, 报 device is busy 的问题分析与解决方法
    WScript与CScript的区别
    20170803上课笔记
    20170802上课随笔
    20170801上课笔记
    20170731上课笔记
    20170729上课笔记
    20170727上课笔记
    20170726上课笔记
    20170725上课笔记
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11404767.html
Copyright © 2011-2022 走看看