永久更改 GTK 颜色选择器中的调色板
Permanently change the color palette in the GTK color picker
在使用颜色选择器小部件 GTK 应用程序时,我经常使用与默认给定的颜色不同的调色板,如下图所示。当程序处于 运行 时,我可以更改默认颜色并且它们保持更改状态,但是,当我关闭程序时,这些修改就会消失。
我想知道如何将这些修改永久保存在磁盘中。
从您选择的标签来看,应用名称似乎是Dia。在应用程序中,您无法设置此选项。所以简短的回答是:no.
问题是 Dia 使用现已弃用的 GtkColorSelectionDialog
(支持 GtkColorChooserDialog
)。在已弃用的版本中,有一个标志告诉小部件 show/hide 调色板,但这几乎是您拥有的唯一控件(参见 gtk_color_selection_set_has_palette
)。
在新的小部件版本中(顺便说一句,看起来完全不同),您可以直接访问 gtk_color_chooser_add_palette
:
void
gtk_color_chooser_add_palette (GtkColorChooser *chooser,
GtkOrientation orientation,
gint colors_per_line,
gint n_colors,
GdkRGBA *colors);
您可以看到,就自定义调色板而言,您有更多的选择。您甚至可以决定颜色。这意味着您可以将当前选择保存在调色板中。然后,在应用程序退出时,您可以将所有调色板的颜色保存在某种设置中,并在应用程序启动时加载它们。
最后一点,我查看了 Dia 源代码,发现他们似乎正在寻求迁移到新的小部件。这里是 an excerpt:
// ...
window = self->color_select =
/*gtk_color_chooser_dialog_new (self->edit_color == FOREGROUND ?
_("Select foreground color") : _("Select background color"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))));*/
gtk_color_selection_dialog_new (self->edit_color == FOREGROUND ?
_("Select foreground color") : _("Select background color"));
selection = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (self->color_select));
self->color_select_active = 1;
//gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (window), TRUE);
gtk_color_selection_set_has_opacity_control (GTK_COLOR_SELECTION (selection), TRUE);
// ...
从评论的代码来看,他们似乎正在尝试采取行动...
在使用颜色选择器小部件 GTK 应用程序时,我经常使用与默认给定的颜色不同的调色板,如下图所示。当程序处于 运行 时,我可以更改默认颜色并且它们保持更改状态,但是,当我关闭程序时,这些修改就会消失。
我想知道如何将这些修改永久保存在磁盘中。
从您选择的标签来看,应用名称似乎是Dia。在应用程序中,您无法设置此选项。所以简短的回答是:no.
问题是 Dia 使用现已弃用的 GtkColorSelectionDialog
(支持 GtkColorChooserDialog
)。在已弃用的版本中,有一个标志告诉小部件 show/hide 调色板,但这几乎是您拥有的唯一控件(参见 gtk_color_selection_set_has_palette
)。
在新的小部件版本中(顺便说一句,看起来完全不同),您可以直接访问 gtk_color_chooser_add_palette
:
void
gtk_color_chooser_add_palette (GtkColorChooser *chooser,
GtkOrientation orientation,
gint colors_per_line,
gint n_colors,
GdkRGBA *colors);
您可以看到,就自定义调色板而言,您有更多的选择。您甚至可以决定颜色。这意味着您可以将当前选择保存在调色板中。然后,在应用程序退出时,您可以将所有调色板的颜色保存在某种设置中,并在应用程序启动时加载它们。
最后一点,我查看了 Dia 源代码,发现他们似乎正在寻求迁移到新的小部件。这里是 an excerpt:
// ...
window = self->color_select =
/*gtk_color_chooser_dialog_new (self->edit_color == FOREGROUND ?
_("Select foreground color") : _("Select background color"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))));*/
gtk_color_selection_dialog_new (self->edit_color == FOREGROUND ?
_("Select foreground color") : _("Select background color"));
selection = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (self->color_select));
self->color_select_active = 1;
//gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (window), TRUE);
gtk_color_selection_set_has_opacity_control (GTK_COLOR_SELECTION (selection), TRUE);
// ...
从评论的代码来看,他们似乎正在尝试采取行动...