我看过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组件周围单击和拖动,该UI组件会随着所选颜色的改变而不断触发事件?我应该只创建一个自定义窗口小部件吗?