电影网站膜拜,云尚网站建设,外贸公司怎么注册,信息发布的网站怎么做文章目录 前言口味改造后语 前言
很久以前#xff0c;作者用 Qt 仿照前端 UI 设计了一个 ministack#xff08;https://gitee.com/icanpool/qtcanpool/blob/release-1.x/src/libs/qcanpool/ministack.h#xff09; 控件#xff0c;这个控件可以折叠。部分用户体验后#… 文章目录 前言口味改造后语 前言
很久以前作者用 Qt 仿照前端 UI 设计了一个 ministackhttps://gitee.com/icanpool/qtcanpool/blob/release-1.x/src/libs/qcanpool/ministack.h 控件这个控件可以折叠。部分用户体验后觉得很不错于是问我可以进行鼠标拖拽和停靠么就是类似 Qt 自带的 DockWidget 的效果。答案自然是不可以。
Qt 自带的 DockWidget 能用但不好用。 作者看了下 QMainWindow 里面提供的关于 DockWidget 的接口以为挺简单的是不是可以参考实现一个呢当走进 Qt 源码的时候才发现把事情想简单了。
作者不行不代表在坐的各位都不行。这不有人就搞事情了Qt 自带的不行那就来个 Qt-Advanced-Docking-Systemhttps://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git结果还干到 Qt Creator 源码里面了不得不佩服。呐这个就叫专业。
口味
Qt-Advanced-Docking-System下文简称 ADS虽然运行效果上杠杠滴但是代码风格上与作者的口味有很大不同。比如
类定义中的声明顺序与 Qt 的完全颠倒了声明的顺序如下。正常的应该是 public 在前面方便用户看到对外接口放在最下面总要让人动动鼠标滑动屏幕。private
private Q_SLOTS
protected
public
public Q_SLOTS
Q_SIGNALS变量名采用大驼峰命名法类名加 C 前缀。比如定义一个类变量CDockWidget *DockWidget。对于没有为类添加 C 前缀这种习惯的人变量 DockWidget 容易和类名混淆在引用的地方看起来很别扭。类私有成员类中的变量大驼峰看起来也很别扭。注释太多了尤其是在头文件中。不注释不好太多了也不好对于见名知义的接口完全没必要。再加上声明顺序的问题看起来好累。其它指针/引用操作符位置、代码块大括号位置等代码风格不做品评。
总而言之吧不符合作者的口味。
改造
作者曾不下三次要改造这个库只为让自己舒服一些。
本次作者抱着学习的态度从头到尾参照 ADS 重写了一个 qxdockhttps://gitee.com/icanpool/qtcanpool/tree/master/src/libs/qxdock不像之前直接在某个版本代码上进行风格替换。代码风格上保持和 qtcanpool 中其它库一致。主要做了如下改变
类定义中的声明顺序为public
signals
public slots
protected slots
private slots
protected
private变量名采用小驼峰命名法类成员变量加 m_ 前缀静态变量加 s_ 前缀。类名去掉 C 前缀文件名采用小写且全用 dock 作为前缀极少注释……
后语
作者是抱着学习态度改造的改成自己的口味一方面便于理解另一方面便于未来的功能扩展。读者可以根据自己的口味选择。如果闲得蛋疼也可以效仿作者去改造