使用kivy,我无法弄清楚如何更改已创建的窗口小部件的绘制顺序。这个简单的应用程序在屏幕上绘制两个图像,我想要它做的是每次鼠标点击交换绘制顺序(移动它们“totop”)。我一直在和InstructionGroup一起玩,但它并没有把我带到任何地方。
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.widget import Widget
class MainWidget(Widget):
def __init__(self, **kwargs):
super(MainWidget, self).__init__(**kwargs)
self.img1 = Image(source="./images/img1.png", x=200, y=200)
self.img2 = Image(source="./images/img2.png", x=200, y=200)
self.add_widget(self.img1)
self.add_widget(self.img2)
def on_touch_down(self, touch):
print 'here I want to swap which image is drawn on top'
class TheApp(App):
def build(self):
parent = Widget()
parent.add_widget(MainWidget())
return parent
if __name__ == '__main__':
TheApp().run()
答案 0 :(得分:3)
您可以删除并阅读小部件,它将被绘制在顶部。
def on_touch_down(self, touch):
if self.children[0] is self.img2:
self.remove_widget(self.img1)
self.add_widget(self.img1)
else:
self.remove_widget(self.img2)
self.add_widget(self.img2)
此外,您应该查看Layouts,因为它们比在Widget
内手动定位所有内容更容易使用。