Qt 自定义通用标题栏TitleBar类

Qt自定义通用标题栏TitleBar类

功能

  • 自定义 Qt 通用标题栏,包含图标、标题、最小化、最大化、关闭;
  • 支持设置最小化、最大化是否显示和是否可用;
  • 支持拖动窗口;
  • 图标、最小化、最大化、关闭控件的样式,支持通过应用程序的QSS文件设置,也可以通过修改TitleBar类的构造函数实现。

效果

在这里插入图片描述

实现

  • 自定义TitleBar类继承自QWidget
  • TitleBar类构造函数
    TitleBar(QString title, QWidget* parent);
    说明:title 用来设置标题
  • TitleBar类声明signals
    • void setMinEnabled(bool enable)
      设置最小化按钮可用性
    • void setMinVisible(bool visible)
      设置最小化按钮可见性
    • void setMaxEnabled(bool enable)
      设置最大化按钮可用性
    • void setMaxVisible(bool visible)
      设置最大化按钮可见性
  • TitleBar类重新QWidget如下函数
    • virtual void painEvent(QPaintEvent*)
    • virtual void mousePressEvent(QMouseEvent* event);
      记录鼠标按下的标记m_pressed
    • virtual void mouseReleaseEvent(QMouseEvent* event);
      清除鼠标按下的标记m_pressed
    • virtual void mouseDoubleClickEvent(QMouseEvent* event);
      实现鼠标左键双击标题栏放大、缩小窗口
    • virtual void mouseMoveEvent(QMouseEvent* event);
      实现鼠标左键拖着窗口移动
  • TitleBar类定义私有变量
    • QWidget* m_parent;
      保存父窗口,用于窗口移动、双击放大、缩小
    • bool m_pressed;
      保存鼠标左键是否按下,用于拖拽窗口
    • QPoint m_move_pos;
      保存鼠标左键移动位置,用于推拽窗口到指定位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值