首页 > 解决方案 > GTK 小部件仅用于按色调选择

问题描述

我查看了 GTK ColorChooserWidget、ColorSelection 和 ColorButton,但它们都没有提供我所追求的。

在编辑模式下,ColorChooserWidget 看起来不错,但似乎没有办法挂钩用户移动选择器的事件,它只有color_activated事件,当小部件被迫进入编辑模式时,这似乎没用从头开始:

ColorChooserWidget c = new ColorChooserWidget ();
c.show_editor = true;
c.set_use_alpha (false);
c.color_activated.connect ((col) => {
    stdout.printf ("Color Activated: %s\n", col.to_string ());
});

ColorSelection 相当好,color_changed事件是理想的,但用户的选项太多。我试过了:

ColorSelection cs = new ColorSelection ();
cs.set_has_opacity_control (false);
cs.set_has_palette (false);
cs.color_changed.connect ( w => {
    stdout.printf ("Color changed to %s\n", w.current_rgba.to_string ());
});

我只想拥有没有其他选项的色轮,并且能够将其锁定为仅更改色调。

GTK 中是否有任何方法允许用户单击并拖动 UI 组件,该组件会随着所选颜色的更改而不断触发事件?我应该只创建一个自定义小部件吗?

标签: gtk3vala

解决方案


推荐阅读