在这个example中,我们可以看到画布的旋转。但是没有注册按钮的角落。如何旋转整个按钮?
答案 0 :(得分:3)
您可以覆盖其collide_point
方法,通过转换触摸坐标来解释旋转。
如果您使用小部件系统(例如将按钮放在散点图中),则会为您处理碰撞。
答案 1 :(得分:0)
根据inclement的答案,我在分散布局上创建了一个按钮,其 hitbox 设置正确。
from kivy.app import App
from kivy.lang import Builder
kv = '''
FloatLayout:
ScatterLayout:
size_hint: None, None
size: 200, 200
pos_hint: {'center_x': .5, 'center_y': .5}
rotation: 45
do_rotation: False
do_scale: False
do_translation: False
Button:
text: 'hello world'
'''
class RotationApp(App):
def build(self):
return Builder.load_string(kv)
RotationApp().run()
我使用了散布布局而不是散射,因为它将其大小传递给子窗口小部件。在此示例中不需要do_x: False
,因为按钮会拦截触摸事件,但如果我放置了标签,则会触摸它。