kivy学习之路--坐标系和坐标转换函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了kivy学习之路--坐标系和坐标转换函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1315字,纯文字阅读大概需要2分钟。
内容图文
![kivy学习之路--坐标系和坐标转换函数](/upload/InfoBanner/zyjiaocheng/1232/68e291cac373495cab5b172bab8cca62.jpg)
参考kivy文档796页,kivy大多数控件默认使用绝对坐标系,即window坐标系,原点位于屏幕window左下角,所有控件的坐标都是相对屏幕左下角的绝对坐标。
RelativeLayout使用的是相对坐标系,即relative 坐标系,如果控件树中存在RelativeLayout,那么隶属于该布局的控件的坐标原点是该布局的左下角,而不是屏幕左下角。如果存在多个RelativeLayout,那么控件以最靠近它的RelativeLayout类型的父控件的左下角为坐标原点。如果控件自身也是RelativeLayout类型,但仍然以最靠近它的RelativeLayout类型的父控件的坐标作为坐标系,这种相对坐标系称为parent 坐标系。反之,如果以自身作为坐标系,则是local坐标系。
其他使用相对坐标系的控件有Scatter、ScatterLayout、ScrollView。
坐标转换函数
这类函数用于转换window、parent、local这三类坐标系的坐标,都接收三个参数,x,y,relative=False(relative参数功能不详,我测试不出True和False情况的区别,求大神告知)
to_widget window坐标转local坐标,
to_local parent坐标转local坐标
to_parent local坐标转parent坐标
to_window local坐标转window坐标
以下为测试代码
#coordinate.kv
1 from kivy.app import App 2from kivy.uix.boxlayout import BoxLayout 3 4 5class MainScreen(BoxLayout): 6def btnright(self,obj): 7 param = list(obj.pos) 8 param.append(False) 9print‘Right: {}‘.format(self.ids.btn2.to_parent(*param)) 1011class TestApp(App): 12def build(self): 13return MainScreen() 14if__name__ == "__main__": 15 TestApp().run()
#test.kv
<MainScreen>: Label: text: ‘Left‘ Button: text: ‘Middle‘ on_touch_down: print(‘Middle: {}\n‘.format(args[1].pos)) RelativeLayout: on_touch_down: print(‘Box: {}‘.format(args[1].pos)) Button: id:btn2 text: ‘Right‘ on_touch_down: root.btnright(args[1])
原文:http://www.cnblogs.com/conda/p/4564817.html
内容总结
以上是互联网集市为您收集整理的kivy学习之路--坐标系和坐标转换函数全部内容,希望文章能够帮你解决kivy学习之路--坐标系和坐标转换函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。