【发布时间】:2019-04-09 03:42:49
【问题描述】:
我想根据我的画笔大小缩放MDIconButton。 PushMatrix/PullMatrix 似乎适用于画布中的所有后续小部件,而不仅仅是预期的按钮小部件。
我发现库存标准 kivy Button 小部件不会出现这种情况,但希望继续使用 kivymd MDIconButton 进行动画和其他行为/敷料。
目前我在顶部使用一个标签来为我的按钮添加额外的细节,这使得这个实现在我看来是最直接的。
我想问题是由MDIconButton 继承自其中的一种行为引起的,但还不能准确地隔离出哪一种。
from kivy.app import App
from kivy.lang import Builder
from kivymd.button import MDRaisedButton, MDIconButton
class TestApp(App):
def build(self):
return Builder.load_string('''
BoxLayout:
orientation: 'vertical'
BoxLayout:
size_hint_y: None
height: dp(42)
orientation: 'horizontal'
##Button:
MDIconButton:
_scale: 1
on_release: self._scale = (((self._scale*3) + 1) % 3) / 3
##text: 'brush'
icon: 'brush'
theme_text_color: 'Custom'
text_color: 1,1,1,1
canvas.before:
PushMatrix
Scale:
origin: self.center
x: self._scale or 1.
y: self._scale or 1.
canvas.after:
PopMatrix
Widget:
id: palette
size_hint_y: None
height: dp(42)
canvas.before:
Color:
rgb: 1,0,0
Rectangle:
size: self.size
pos: self.pos
Widget:
id: sketchpad
canvas.before:
Color:
rgb: 1,1,0
Rectangle:
size: self.size
pos: self.pos
''')
if __name__ == '__main__':
TestApp().run()
MDIconButton icon: 'brush' 应在 3 种尺寸之间循环,其余小部件保持正常尺寸(将 MDIconButton 替换为 Button 并将 icon: 更改为 text: 时出现正确行为)。
有没有更好/不同的方法来改变图标大小,完全避免这个问题?
【问题讨论】:
标签: python kivy kivy-language