如何获得gtk3的自定义字符以自定义按钮字体,背景和前景色?

时间:2019-03-26 02:08:51

标签: gtk3 yad

我在Raspberry Pi 3上将yad用于GTK3(不是GTK2)以显示一组按钮。屏幕离我坐在的地方很远,因此我需要一种使按钮文本和突出显示的按钮突出的方法。我完全不熟悉GTK3的内部工作原理,只需要逐步进行操作即可。我不希望更改主题或其他更全局的设置,我只希望它可用于该YAD执行。有可能吗?

我看到了一个博客,描述了如何使用RC文件更改按钮样式,但这是使用GTK2库的yad版本。我很快了解到在Pi 3上这对我不起作用。我应该提到我正在使用默认的LXDE窗口管理器。

我希望有人可以逐步提供文件内容,放置文件的位置以及如何使用它的新手。我知道解决方案与css有关,但我不熟悉如何执行此类操作以及如何仅使Yad激活CSS,也不知道要在上述css文件中放入什么内容。

1 个答案:

答案 0 :(得分:0)

我主要解决了自己的处境。希望这对其他人有帮助。它不是完美的,但是满足了我的需求。

我做的第一件事是使用GTK调试器启动yad。

export GTK_DEBUG=interactive
yad --title "my title" --button "button1:1" --button "button2:2" --button "button3:3" --text "some text"

对我来说,在调试器中最有用的事情是选择并找到对象的名称,然后动态地编辑CSS。我不知道CSS。我把在其他大多数站点上都能找到的零碎的东西拼凑在一起。

然后,另一个有用的功能是能够“动态”更改GTK3主题。我是这样使用的:

export GTK_THEME="Adwaita-dark"

然后,我再次重新执行yad行。它暂时使用了新主题。

我发现主题主要完成了我想要的工作,并且似乎尊重了我的自定义CSS。由于某些原因,我没有深入研究,使用默认主题“ Adwaita”并不尊重我的自定义CSS。显然,如果我选择其他主题,则必须将自定义css放在该主题的目录中,而不是“ Adwaita-dark”

要保存我的自定义设置,我创建了$ HOME / .themes并在该目录下创建了以下目录:

  • $ HOME / .themes / Adwaita-dark
  • $ HOME / .themes / Adwaita-dark / gtk-3.0

然后我将自定义CSS放入$ HOME / .themes / Adwaita-dark / gtk-3.0 / gtk.css

这是我的自定义CSS,可覆盖yad的默认设置:

/* The background of the entire window
box {
    background-image: image(rgb(224, 224, 209));
} */

/* The progress slider */
progress {
   /* background-image: image(rgb(102, 102, 255)); */
   background-image: image(rgb(102, 0, 255));
}

/* this gets us the highlighting behavior */
button:focus {
   color: black;
   border-top-color: yellow;
   border-left-color: yellow;
   border-right-color: yellow;
   border-bottom-color: yellow;
   border-bottom-width: 10px;
   border-top-width: 10px;
   border-bottom-width: 10px;
   background-image: image(rgb(255,102,255));
}


button {
   color: yellow;
   font: 24px "comic sans";
   border-top-color: black;
   border-left-color: black;
   border-right-color: black;
   border-bottom-color: black;
   border-bottom-width: 10px;
   background-image: image(rgb(100,100,100));
}

上面的某些指令实际上并没有对这个主题做任何事情,但是我留给他们以防万一我将来想尝试。我启动Yad的方式是这样的:

GTK_THEME="Adwaita-dark" yad --title "my title" --button "button1:1" --button "button2:2" --button "button3:3" --text "some text"