User interface 如何访问GTK/Gnome上的主题字体和颜色

User interface 如何访问GTK/Gnome上的主题字体和颜色,user-interface,gtk,themes,User Interface,Gtk,Themes,假设我想编写一个特殊的文本编辑器小部件 如何获取文本的默认主题颜色, 所选文本和背景以及用户默认设置 字体 我看到GNOME确实定义了5种特殊的系统字体和默认大小 为此,在GNOME外观配置对话框中, 但是我在GTK文档中找不到一个单词如何 访问它们(GTK邮件列表是一个笑话):-() Windows和Cocoa都给了我很多系统值 我找到了GtkStyle类,但这似乎不是我所需要的。对于默认颜色,请使用以下内容: GdkColor color; /* Look up the default te

假设我想编写一个特殊的文本编辑器小部件

如何获取文本的默认主题颜色, 所选文本和背景以及用户默认设置 字体

我看到GNOME确实定义了5种特殊的系统字体和默认大小 为此,在GNOME外观配置对话框中, 但是我在GTK文档中找不到一个单词如何 访问它们(GTK邮件列表是一个笑话):-()

Windows和Cocoa都给了我很多系统值


我找到了GtkStyle类,但这似乎不是我所需要的。

对于默认颜色,请使用以下内容:

GdkColor color;
/* Look up the default text color in the theme, use a default 
if it's not defined */
GtkStyle *style = gtk_rc_get_style(my_widget);
if(!gtk_style_lookup_color(style, "text_color", &color))
    gdk_color_parse("black", &color);
gtk\u style\u lookup\u color()
定义了几个名称。它们的确切定义位置有点不清楚,但这些是可以在GNOME对话框中定义的名称:

  • fg\u颜色
  • bg\u颜色
  • base\u color
  • text\u color
  • selected\u bg\u color
  • selected\u fg\u color
  • tooltip\u bg\u color
  • tooltip\u fg\u color
至于字体和其他系统设置,您需要使用GConf库来获取这些默认值。GTK对它们一无所知,因为它们是GNOME桌面的一部分,而不是GTK。例如,可以在键
/desktop/GNOME/interface/font\u name
处找到默认字体。如果您安装了GConf配置编辑器,您可以浏览编辑这些键以查看哪些可用;它们都位于
/desktop/gnome


另外,你问了什么GTK邮件列表?我读的邮件列表似乎不是一个玩笑…

谢谢你的好回答。我遵循“GTK”的说法-list@gnome.org“这是一个非常低容量的列表,似乎没有核心开发人员。gtk应用程序开发”列表和“gtk开发”列表相当活跃。