Python Kivy:访问按钮图像对象

Python Kivy:访问按钮图像对象,python,kivy,Python,Kivy,Kivy按钮小部件具有background\u normal和background\u down属性,用于将背景图像设置为正常和关闭状态。是否有方法将它们作为Image类实例访问以修改它们?或者是否有一些API可以直接操纵后台的 大小 位置 重复(x/y) 不透明 纵横比 等等?不,您不能这样访问它们,因为它们实际上不是图像小部件,而是通过图形指令实现的。如果你感兴趣的话,你可以在 如果你想要一些不同的行为,我建议你自己制作一个ImageButton类的课程。Kivy当前的开发版本(1.8,

Kivy
按钮
小部件具有
background\u normal
background\u down
属性,用于将背景图像设置为正常和关闭状态。是否有方法将它们作为
Image
类实例访问以修改它们?或者是否有一些API可以直接操纵后台的

  • 大小
  • 位置
  • 重复(x/y)
  • 不透明
  • 纵横比

等等?

不,您不能这样访问它们,因为它们实际上不是图像小部件,而是通过图形指令实现的。如果你感兴趣的话,你可以在

如果你想要一些不同的行为,我建议你自己制作一个ImageButton类的课程。Kivy当前的开发版本(1.8,即将发布)包括一些更改,通过将按钮行为抽象为
ButtonBehavior
类,包含/管理触摸和按下事件等,使这一点变得特别容易。您可以通过执行
类ImageButton之类的操作将其与图像结合起来(ButtonBehavior,Image)
要获得与按钮完全相同的触摸交互图像,尽管在本例中,如果需要,您必须自己管理背景更改。您还可以通过类似的原则制作其他不同的小部件

制作您自己的小部件应该使您能够轻松控制所建议的属性。一旦您从您可以控制的组件小部件构建按钮,那么大小和位置当然很容易手动管理。可以通过修改图像的纹理来控制重复(请参阅“包裹”属性)不透明度是每个小部件的一个可控属性,当然纵横比是作为图像属性公开的

因此,总体而言,最好的方法可能是根据图像制作您自己的小部件,并自己添加触摸交互。在Kivy 1.8中,您可以使用ButtonHavior来简化操作。在1.7中,将透明按钮放置在图像顶部可能是最简单的方法