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) 
    { 
    }
  • 相关阅读:
    使用FolderBrowserDialog组件选择文件夹
    使用OpenFileDialog组件打开多个文
    使用OpenFileDialog组件打开对话框
    获取弹出对话框的相关返回值
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1137 Final Grading (25 分)
    PAT 甲级 1137 Final Grading (25 分)
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11404767.html
Copyright © 2011-2022 走看看