qt 自动隐藏窗体

#ifndef DESKDOCKWIDGET_H
#define DESKDOCKWIDGET_H

#include "qtinclude.h"

class FloatingWidget : public QWidget
{
	Q_OBJECT

public:
	enum FloatingFeature
	{
		NoArea = 0x0,
		TopArea = 0x1,
		BottomArea = 0x2,
		LeftArea = 0x4,
		RightArea = 0x8,
		AllArea = 0xf,
	};

public:
	explicit FloatingWidget(FloatingFeature D, QWidget * parent = nullptr, Qt::WindowFlags flags = 0);

protected:
	virtual void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
	virtual void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
	virtual void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
	virtual void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
	virtual void enterEvent(QEvent *) Q_DECL_OVERRIDE;
	virtual void leaveEvent (QEvent *) Q_DECL_OVERRIDE;

	QSize sizeHint() const{ return QSize(128, 142);}

private slots:
	void setDirection(FloatingFeature D);
	void HideDockWidget();
	void ShowDockWidget();

private:
	void MoveWindow(const QPoint & start, const QPoint & end, unsigned int step = 5);

private:
	bool m_IsVisible = true;
	FloatingFeature m_feature;
	QPoint m_dragPosition;
	QPoint m_RecoverPosition;
	QTimer * m_timer = nullptr;
};

#endif // DESKDOCKWIDGET_H

#include "deskdockwidget.h"

#include <QtCore/QtMath>
#include <QtCore/QPropertyAnimation>

#include <QtWidgets/QDesktopWidget>

#define TEST_BIT(a, b) a & b
#def
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值