• Qt 隐藏标题栏 窗口移动 鼠标事件


    • 摘要
      • 隐藏标题栏
      • 头文件声明鼠标移动虚函数
      • .cpp文件实现功能
    1
    setWindowFlags(Qt::FramelessWindowHint | windowFlags());

    无标题栏移动窗体的实现

    头文件声明虚函数

    • widget.h
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    #define WIDGET_H

    #include <QWidget>
    #include <a.out.h>

    namespace Ui {
    class ;
    }

    class : public QWidget
    {
    Q_OBJECT

    public:
    explicit (QWidget *parent = 0);
    ~Widget();

    protected:
    virtual void mousePressEvent(QMouseEvent *event);
    virtual void mouseMoveEvent大专栏  Qt 隐藏标题栏 窗口移动 鼠标事件an>(QMouseEvent *event); // 移动
    virtual void mouseReleaseEvent(QMouseEvent *event); // 鼠标释放
    private:
    Ui::Widget *ui;
    bool m_pressed; // 判断鼠标左键是否按下
    QPoint m_pos; // 鼠标相对于窗口的位置,不是相对屏幕的位置
    };

    #endif // WIDGET_H

    头文件实现虚函数

    • widget.cpp
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    void Widget::mousePressEvent(QMouseEvent *event)
    {
    if (event->button() == Qt::LeftButton)
    {
    m_pressed = true;
    m_pos = event->pos();
    }
    }

    void Widget::mouseMoveEvent(QMouseEvent *event)
    {
    if(m_pressed)
    {
    move(event->pos() - m_pos + this->pos());
    }
    }

    void Widget::mouseReleaseEvent(QMouseEvent *event)
    {
    Q_UNUSED(event); // avoid the warnning that 'event' is unused while building the project

    m_pressed = false;
    }
  • 相关阅读:
    测试用例
    SQL/My sql
    测试报告
    postman
    Linux环境搭建及命令
    jQuery EasyUI API 中文文档 树表格(TreeGrid)
    MYSQL学习心得(十) 自定义存储过程和函数
    webBrowser
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)前言与目录
    vim括号操作(转)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12247789.html
Copyright © 2020-2023  润新知