KDDockWidgets,QDockWidget的高级实现框架

kdqdockwidget

埃尔格鲁波 KDAB是Qt,C ++和OpenGL应用程序的软件顾问 除此之外,还适用于不同的平台(台式机,嵌入式和移动平台) 提供辅导以从头开始开发Qt应用程序 并将所有流行的帧传输到Qt。

多年来, KDAB为QDockWidget的开发做出了贡献并提供了资金。 但是由于使用QdockWidget进行更改和错误修复需要花很多天的时间, 事实证明这不是一个好选择,因此诞生了KDDockWidgets。

KDDockWidgets是 QDockWidgets的高级停靠框架,通过添加QDockWidgets不支持的功能来扩展其用途。

QdockWidget将GUI代码与具有状态的逻辑本地结合在一起, 劳阙 使得采用新功能前进非常困难, 这导致在不同平台上实施它的复杂性。 由于它是一系列图形用户界面的基本组成部分,因此您可以将窗口的整个元素(工具栏,小部件组等)移动到任意位置。

然而, KDAB认为QDockWidgets代码的维护不是一件容易的事, 他评论说:

在从事两个需要大量定制的项目之后,KDDockWidgets出于维护我的理智的需要而诞生。 我们试图直接在上游工作的地方,但是回归的速度最终太大了。

还有另一个我使用私有API,伪造的鼠标事件和事件过滤器的方法,乍一看似乎是个好主意,但最终却是一个痛苦的世界。 另外,我们的客户在请求方面变得更具创意,因此很明显,我们需要一个更好的对接框架。

主要问题是它的设计,它非常单一但可配置(对于动画,我们可以选择用户可用的功能,即使很少有人这样做),也带有意大利面条代码(愉快地将逻辑和组件状态混合在一起)。 因此,任何更改都可以创建大量回归。

这就是为什么KDAB决定创建KDDockWidgets的原因,它试图极大简化QDockWidgets设计,同时促进其适应特定情况。

KDDockWidgets提供以下功能:

  • 能够将小部件停靠在浮动窗口中并将该组停靠到主窗口
  • 停靠到任何窗口,而不仅仅是主窗口
  • 停靠在主窗口的中央
  • 支持主窗口中央小部件中的可分离选项卡
  • 能够从扩展坞中的标签栏分离标签
  • 通过组合各种组件来组合多个选项卡的能力。
  • 公开内部帮助窗口小部件,以便用户可以自定义它们或提供自己的窗口小部件。
  • 组件组可以从外部窗口(仅包含此组件组)自由切换到主窗口(在Qt 5.10中部分实现的功能)。
  • 自定义标签小部件
  • 自定义标题栏
  • 自定义窗框
  • 除了强调主要的变化是增加精确的指示器以从GUI中删除元素外,还取消了中央窗口小部件的概念,因为它不再是特定的元素。

新组织清楚地将逻辑与图形界面分开,因此基础运行时为 可以轻松地重新用于Qt Quick接口 (最终可以预期)。 它还使自定义界面变得容易,用户可以为界面的任何部分提供自己的窗口小部件。

另外, KDDockWidgets旨在成为一个框架,因此您可以轻松地覆盖接口 提供自定义外观和行为。 KDDockWidgets是一个开源框架, 已获得GPLv2和GPLv3许可。

可以使用KDDockWidgets代码及其演示 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。