这可能是一个非常简单的解决方案,但我是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)
非常感谢您的帮助,也非常感谢您如何做得更好。
答案 0 :(得分:0)
问题解决了。因为我认为这是一个非常基本的初学者问题,我不知道如何从第一个访问第二个小部件中的属性。