Mozilla Firefox 和 Ubuntu Software Center 等应用程序能够将标题栏渐变向下扩展到其工具栏区域。示例如下:
如何在我的应用程序中实现相同的效果?
Mozilla Firefox 和 Ubuntu Software Center 等应用程序能够将标题栏渐变向下扩展到其工具栏区域。示例如下:
如何在我的应用程序中实现相同的效果?
首先,您提到的两个应用程序是使用不同的工具包和技术构建的,因此采用不同的方法来做您愿意做的事情。虽然 Firefox 使用XUL/GTK2
,但 USC 使用GTK3
. 我将解释这两种方法。
Ubuntu 软件中心是使用 构建GTK3
的,因此它的工具栏渐变是在主题 css 文件中定义的。实现这一点的代码是
/* primary-toolbar */
.primary-toolbar,
.primary-toolbar .toolbar,
.primary-toolbar.toolbar {
-GtkWidget-window-dragging: true;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.96)),
to (shade (@dark_bg_color, 1.4)));
border-bottom-color: shade (@dark_bg_color, 1.1);
border-top-color: shade (@dark_bg_color, 1.09);
border-style: solid;
border-width: 1px 0 1px 0;
color: @dark_fg_color;
text-shadow: 0 -1px shade (@dark_bg_color, 0.7);
box-shadow: inset 0 1px shade (@dark_bg_color, 0.94);
}
为了在您的 gtk3 应用程序中使用它,您必须将类分配primary-toolbar
给您的工具栏。有关这方面的适当文档,请查看此处。
Firefox 是使用 XUL 构建的,并使用 GTK2 在 GNU/Linux 发行版(如 Ubuntu)上呈现小部件。Firefox的样式tab-bar
来自相关主题文件中menubar
定义的外观定义。gtkrc
在默认主题 Ambience 的情况下,它是
style "menubar" = "dark" {
engine "murrine" {
textstyle = 2
text_shade = 0.33
gradient_shades = {1.0, 1.0, 1.0, 1.0}
lightborder_shade = 1.0
}
}
在其他工具包中可以通过不同的方法来实现效果,但是建议您在gtk3中编写您的应用程序,以便使用原生样式。