首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗口管理器主题和X11

窗口管理器主题和X11
EN

Stack Overflow用户
提问于 2012-12-01 01:11:39
回答 1查看 489关注 0票数 1

在一些WMs中,可以选择影响窗口如何显示的主题,例如按钮的背景如何着色。

如果我使用纯Xlib调用绘制一个窗口,我应该怎么做才能符合这些受主题影响的设置?也就是说,我是否应该为每个可能的WM编写特定的代码?它通常是如何解决的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-01 02:34:18

有几个主题类型,他们有时一起玩,但他们不应该被混淆。

颜色管理器/边框主题描述每个窗口的装饰,而不是content

  • UI工具包主题/小部件主题描述如何在window

  • Icon内绘制按钮、文本字段等主题描述使用哪些图标,包括应用程序图标以及文件图标、操作图标、工具栏图标等。

  • 颜色主题定义要在其他

主题的框架内使用的调色板定义一组鼠标指针图标

一些桌面环境将所有这些主题捆绑在“桌面”主题中,或者至少提供一个前端来选择所有这些主题。然而,这些主题是独立于桌面环境的,也是相互独立的。可以使用配置文件设置它们。

如果你想让你的应用程序符合用户的喜好,首先你应该坚持图标主题。指针主题是由X服务器处理的,只要你只使用常用的鼠标图标,而不是上传你自己的图标到X服务器。

第二个显而易见的事情是颜色主题,但不幸的是,颜色主题没有标准,Gtk+和Qt框架都以独立的方式提供了这一功能(桌面主题配置器理解和操作两者以提供一致性)。您可以使用一些魔法来找出用户更喜欢Gtk+颜色还是Qt颜色(例如,正在运行Gnome或KDE),然后从那里提取一些颜色。

然而,最困难的事情是提供符合用户选择的UI工具包主题的UI元素的外观和感觉。首先,您必须再次在Gtk+和Qt之间做出选择(也存在其他可主题化的工具包,但通常不是由用户或像启迪这样的利基玩家来主题化的)。然后,您将不得不重新实现相同的功能。有趣的是,许多主题在Gtk+中都有自己的主题引擎,可以让主题引擎为您完成工作。一种已经被几个政党采用的方法。示例:

使用inconsistencies.

  • Firefox和其他使用XUL的
  • 应用程序也可以做到这一点,但总是有一些恼人的不同之处,从默认字体大小开始。
  • Qt本身有一个兼容性Gtk+主题,基本上做了同样的事情;这个主题工作得很好。

我的建议是不要重复发明轮子,而是对超出基本绘图操作的图形用户界面元素使用Qt (或Gtk+,如果您愿意)。请注意,根据我的经验,即使是原始绘制,使用Qt通常也比使用Xlib更好。用户得到了他们期望的外观和感觉(不仅仅是外观),界面丰富而稳定,您可以节省大量的时间来编写所有这些东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13649824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档