Qt自定义界面窗体缩放,跨平台终极版无边框frameless helper widget

C/C++ 2020-08-28 10:37:04

Qt自定义界面窗体缩放,跨平台终极版无边框frameless helper widget

看到过很多不同的实现方式,多多少少会存在一些问题-要么融合度太高、要么不能很好地进行移动、缩放。基于前人的分享与总结,最后,我花了很长时间来完善。独乐乐不如众乐乐,既然纯开源-那就全部分享出来。

我们实现了窗体的缩放,功能很不错,但是很遗憾-不支持跨平台!如果对于多平台来说,这是一个硬伤,所以,我们急需要一个能够支持跨平台的实现方案。

FramelessHelperPrivate类
/*****
* FramelessHelperPrivate
* 存储界面对应的数据集合,以及是否可移动、可缩放属性
*****/
class FramelessHelperPrivate
{
public:
QHash m_widgetDataHash;
bool m_bWidgetMovable : true;
bool m_bWidgetResizable : true;
bool m_bRubberBandOnResize : true;
bool m_bRubberBandOnMove : true;
};