qtcanpool 知 05:无边框

文章目录

  • 前言
  • 现状
  • 计划

前言

在上一讲“主题之争”中,我们知道引入主题是为了解决原生界面“丑”的问题,机智的读者可能已经根据几种手段美化了自己的界面。这些读者可能会发现一个问题:在美化后,标题栏会显得格格不入,它不受你控制,依然保持原有的朴素。

追求极致的读者,是不能容忍这样的标题栏存在的,所以他们要想方设法的去消灭它。

解决原生标题栏不受控的问题,也是 qtcanpool 产生的一个原因。目前主流的做法是:去掉原生标题栏,重新自定义标题栏。在 Qt 中去掉标题栏是通过一个窗口标志 Qt::FramelessWindowHint 设置的,这就是“无边框”的由来。

现状

qtcanpool 中的 FancyTitleBar 是基于 FramelessHelper 演变而来的,目前网上关于 FramelessHelper 的内容铺天盖地,如雨后春笋般层出不穷。

读者,甚至作者都认为,还有必要专门开主题去讲吗,直接到网上找一个用就好了,而且有的资料还很全面。作者简单看了下各家的 FramelessHelper,还有改善的地方,作者除了想输出一个通用的组件,也想把这一块再进一步学习一下,所以干就完了。

计划

由于作者要整理 Qt 无边框背后的机制、学习各家 FramelessHelper 设计原理,输出通用组件等,所以短时间内还完不成该主题的讲解,敬请期待,也许是一个月,也许是一年……

目前,在 qtcanpool master 分支中,FancyTitleBar 可以较好的支持 Windows 平台原生特性,欢迎体验和完善。

你可能感兴趣的:(qtcanpool,qt,FramelessHelper,QCustomWidget)