4

我在 Raspberry Pi 3 上为 GTK3(不是 GTK2)使用 yad 来显示一组按钮。屏幕离我坐的地方很远,所以我需要一种方法来突出按钮文本和突出显示的按钮。我对 GTK3 的内部工作原理完全不熟悉,只需要一步一步地做什么。我不想更改主题或其他更全局的设置,我只想让它适用于这个 YAD 执行。可能吗?

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

我希望有人可以逐步提供文件内容的新手,将文件放在哪里以及如何使用它。我知道解决方案与 css 有关,但我不熟悉如何做这样的事情以及如何使 CSS 只为 yad 活动,也不知道在所述 css 文件中放入什么内容。

4

1 回答 1

4

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

我做的第一件事是使用 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"
于 2019-03-30T23:56:33.917 回答