GtkColorChooser与GtkColorSelection

时间:2014-01-31 03:42:40

标签: c gtk

(直接从我的上一个帖子中直接跳过:)阅读GTK Book,在确保学习以GTK3为中心的技能时,有很多事情需要清理。一个是颜色选择小部件。

首先,我想知道GtkColorChooser应该如何允许alpha选择。这本书只有你gtk_color_selection_set_has_opacity_control (GTK_COLOR_SELECTION (colorsel), TRUE);GtkColorChooser有类似的功能,但它似乎没有创建任何东西。还有show-editor属性我翻到TRUE但似乎没有做任何事情。

第二,对GtkColorSelectionDialog->colorsel GtkColorChooserDialog是否有同等的概念?在中,你可以从父对话框访问GtkColorChooser小部件吗?

编辑:

这是对话框创建的来源,我遗漏了一些东西。我期待这会向我展示一个支持alpha的颜色选择器小部件,但它只给我定期色板。

dialog = gtk_color_chooser_dialog_new(title, window);

gtk_color_chooser_dialog_set_use_alpha(GTK_COLOR_CHOOSER(dialog), TRUE);

我唯一的猜测是我试图错误地访问颜色选择器,但是我无法找到关于如何从对话框进入选择器的足够详细的说明。

1 个答案:

答案 0 :(得分:1)

GtkColorChooser界面允许通过设置:use-alpha属性来选择Alpha通道:

https://developer.gnome.org/gtk3/stable/GtkColorChooser.html#gtk-color-chooser-set-use-alpha

设置:use-alpha属性后,您可以在编辑器中创建新的自定义颜色时选择alpha;新的比例小部件将出现在颜色编辑器的底部,您可以选择Alpha级别:

the GtkColorChooser editor with use-alpha set to TRUE

GtkColorChooserDialogGtkDialog,对话框内容区域内有GtkColorChooserWidget,因此您可以使用gtk_dialog_get_content_area()然后获取返回的{{1}的第一个子节点}}。这可以说是一个分层违规,不应该被要求:GtkBox将所有GtkColorChooserDialog方法代理到其GtkColorChooser,您永远不需要直接访问小部件。如果您想要控制GtkColorChooserWidget,则应自行创建GtkColorChooserWidget并将GtkDialog打包到其中。再次,除非你想创建自己的自定义对话框,否则我不建议这样做。