Kivy:如何使用切换按钮锁定散点布局中图像的缩放和平移?

时间:2015-08-29 12:58:27

标签: python-2.7 kivy togglebutton

这可能是一个非常简单的解决方案,但我是Kivy的新手,我无法弄清楚:

我使用分散布局来保存应用程序中的图像,这样我就可以缩放和移动它,但是我喜欢使用切换按钮来实现锁定缩放和转换的选项,这样当我" unpress&时它将再次可用#34;按钮。

不会返回任何错误,但缩放仍然有效。

我正在研究这种结合python和KV文件。

py代码:

class ScreenStartMapping(Screen):
image_path = StringProperty('')
do_scale = BooleanProperty()      
def mapLine(self, *args):    
    if args[1] == "down":
        print args[1]
        self.do_scale = False
        print self.do_scale
    elif args[1] == "normal":
        print args[1]
        self.do_scale = True
        print self.do_scale

和Kivy文件定义整个屏幕:

<ScreenStartMapping>:
    GridLayout:
        id: gl
        rows: 2
        ScatterLayout:
            id: sl
            do_rotation: False
            do_scale: toggleMappingMode
            auto_bring_to_front: False
            Image:
                source: root.image_path
                canvas:
                    Line: 

        Label:
            size_hint_x: 1
            size_hint_y: 0.1
            canvas.before:
                Color:
                    rgb: .1,.1,.1
                Rectangle:
                    pos: self.pos
                    size: (root.size[0], root.size[1]/10)

            Button:
                background_color: (1.0, 0.0, 0.0, 0.5)
                pos: self.pos
                size: (root.size[0]/5, root.size[1]/10)
                text: "Back"
                font_name: "C:\WINDOWS\Fonts\segoescb.ttf"
                on_press: root.manager.current = "screen1"

            ToggleButton:
                id: toggleMappingMode
                background_color: (0.0, 1.0, 0.0, 0.5)
                pos: (root.size[0]/5, self.pos[1])
                size: (root.size[0]/5, root.size[1]/10)
                text: "Draw line"
                font_name: "C:\WINDOWS\Fonts\segoescb.ttf"
                on_state:
                    root.mapLine(*args)

非常感谢您的帮助,也非常感谢您如何做得更好。

1 个答案:

答案 0 :(得分:0)

问题解决了。因为我认为这是一个非常基本的初学者问题,我不知道如何从第一个访问第二个小部件中的属性。