用户界面 – 什么是“客户端装饰”?

我是一名学生,他做了一些web东西和一些命令行应用程序,现在给GUI一个尝试.我读了 http://python-gtk-3-tutorial.readthedocs.org/en/latest/layout.html,我绊倒了这句话:

Since GTK+ Now supports Client Side decoration,a Gtk.HeaderBar can be used in place of the title bar (which is rendered by the Window Manager).

有人可以解释一下“客户端装饰”吗?

http://blogs.gnome.org/mclasen/2014/01/13/client-side-decorations-continued/读起,我会猜测“客户端装饰”就是主题.有人可以解释窗口管理员如何与GTK进行交互?为什么叫“客户端装饰”?什么是服务器端装饰? (还是其他类型的装饰?)

传统上,GUI应用程序将对其窗口的内容负责,而不是标题栏,关闭按钮,边框,调整大小等等.这些都将被窗口管理器添加,并称为装饰.

(窗口管理器的示例是TWM,FluxBox,Metacity,Mutter等)

这是一个简单的解释,但这是桌面主题的实现方式;由于窗口不知道其标题栏,窗口管理器将一个与当前主题相匹配的窗口管理器.如果用户更改主题,则窗口只是更改标题栏.您的应用程序不必在乎.

另一方面,这意味着您的应用程序完全不可能以任何方式自定义标题栏.

近年来,已经有可能告诉窗口管理员“不谢谢你,我不想要装饰”,而是渲染你自己的标题栏.这就是GtkHeaderBar是什么 – 通过在标题栏中放置自定义控件来节省更多的屏幕空间,例如Chromium与浏览器选项卡.这被称为客户端装饰.

(从技术上讲,这总是可能的,但容易出错,因为你必须自己模仿窗口装饰的所有功能,用户期望他们工作的方式,GtkHeaderBar为你做.)

这是一把双刃剑,因为客户端装饰,您的应用程序不会对窗口管理器主题的更改做出反应.

至于客户端的名称,它来自X术语,其中客户端是呈现窗口并将其发送到X服务器的应用程序.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...