我怀疑解决方案在libchamplain范围内,但我也在这里问,以防有人知道出路。
在一个小型的Python-Gtk3程序中,我使用libchamplain来选择一个位置,并指出一个维度。
为此,我向用户提供了一个圆圈,他们可以使用两个标记来控制,中心和通过。
当您拖动中心时,通过'保持原样,圆圈相应地适应。当您拖动“直通点”时,您将控制圆的半径。拖动圆圈时,两个标记随之移动。
问题在于第三个选项,因为看起来,libchamplain坚持按z顺序将对象拉到前面,所以我再也无法到达中心点。
我打开issue there,提供source code of my python program。我的解决方案,非常脏,是每次拖动圆圈时移除标记并再次创建它们。新的标记会产生圆圈,这就是我想要的,但这不是我想要的方式。
我想知道在当前版本的libchamplain中是否有人有更整洁的解决方案。
答案 0 :(得分:0)
显然,libchamplain 0.12不支持new 5000 4999.96331002
old 5000 4991.73952992
new 10000 9999.92662005
old 10000 9956.9314274
new 50000 49999.6477761
old 50000 49591.6104893
new 100000 99999.2172809
old 100000 94841.227219
属性:图层中标记的z顺序由它们在图层子列表中出现的顺序决定。这最初与将标记添加到图层的顺序相同。
真正的困惑(从我的角度来看)在你点击一个对象时开始,因为在那一刻libchamplain将该对象移动到其容器的子节点的末尾,即在z-ordering的顶部
图书馆馆长JiříTechet建议将自己的标记构建为最佳解决方案,如果我坚持以这种方式滥用API,那么就这样做:
z-position