如何在 KivyMD 中更改 FloatingActionButton 的大小?
Posted
技术标签:
【中文标题】如何在 KivyMD 中更改 FloatingActionButton 的大小?【英文标题】:How to change size of FloatingActionButton in KivyMD? 【发布时间】:2021-09-10 05:45:56 【问题描述】:没有参数更改有任何影响。此外,文档中指定的 set_size
函数也不起作用。
user_font_size
仅调整按钮内图标的大小,而不是按钮本身。
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.button import MDFloatingActionButton
class MyApp(MDApp):
def build(self):
screen = MDScreen()
btn_1 = MDFloatingActionButton(icon='account',
pos_hint='x': .2, 'y': .1,
)
btn_2 = MDFloatingActionButton(icon='account',
pos_hint='x': .3, 'y': .1,
size=[16., 16.],
user_font_size=64
)
btn_2.set_size((100, 100))
screen.add_widget(btn_1)
screen.add_widget(btn_2)
return screen
if __name__ == '__main__':
MyApp().run()
精英:
size_hint
不起作用并抛出错误:
[CRITICAL] [Clock ] Warning, too much iteration done before the next frame. Check your code, or increase the Clock.max_iteration attribute
【问题讨论】:
你能提供一个minimal, reproducible example你的代码吗? 【参考方案1】:对于 KivyMD 0.104.1 版:
不幸的是,KivyMD 文档似乎并不准确。您可以通过使用大小提示(例如:size_hint=(0.1, 0.1)
)来设置 FloatingActionButton 的大小以对应于窗口大小。如果要使用特定的像素值,请参见下文:
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.button import MDFloatingActionButton
class MyApp(MDApp):
def build(self):
screen = MDScreen()
btn_1 = MDFloatingActionButton(icon='account',
pos_hint='x': .2, 'y': .1,
)
btn_2 = MDFloatingActionButton(icon='account',
pos_hint='x': .3, 'y': .1,
size=[16., 16.], # Not necessary, doesn't have an effect
user_font_size=64
)
btn_2.size = (100, 100) # Modified line
screen.add_widget(btn_1)
screen.add_widget(btn_2)
return screen
if __name__ == '__main__':
MyApp().run()
无论出于什么原因,在初始化MDFloatingActionButton实例的时候不能设置按钮的大小,只能事后设置。
【讨论】:
不,那没用。而size_hint
抛出一个错误,也没有用
我的错,我使用的是 KivyMD 版本 0.104.1,而不是最新版本。我查看了最新版本的源代码,他们使值基本上是硬编码的。每次修改 MDFloatingActionButton 的大小时,都会恢复为默认值。你可能需要想办法解决这个问题。如果我找到解决方案,我会发布对此答案的编辑。以上是关于如何在 KivyMD 中更改 FloatingActionButton 的大小?的主要内容,如果未能解决你的问题,请参考以下文章
在 KivyMD Python 中更改开始屏幕时,如何在启动时显示或关闭消息?