在按钮中组合图像/图标和文本的首选方法是什么?例如,如何创建一个按钮text = 'my button',并在该文本的左侧创建一个图形图标?
tot*_*ico 15
关于问题#2.
Kivy的工作方式是嵌入Widget实例.由于Image和Button是控件的子类,那么所有你需要做的就是嵌入图像的一个按钮内.请注意,窗口小部件内的定位是固定的.你必须给出明确的坐标.
也就是说,你总是可以嵌入一个Layout来组织你在Button里面放的东西.
这是简单的前任
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ButtonsApp>:
orientation: "vertical"
Button:
text: "B1"
Image:
source: 'kivy.png'
y: self.parent.y + self.parent.height - 200
x: self.parent.x
Label:
text: "A label"
""")
class ButtonsApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ButtonsApp().run()
Run Code Online (Sandbox Code Playgroud)
编辑:如何将相对布局嵌入按钮内的示例
在这种情况下,我使用a StackLayout来组织一个Image和一个Label内部.正如我所说,Button是一个Widget和Kivy工作在窗口小部件中嵌入小部件.它们是标签,按钮还是布局并不重要.
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ButtonsApp>:
orientation: "vertical"
Button:
StackLayout:
pos: self.parent.pos
size: self.parent.size
orientation: 'lr-tb'
Image:
source: 'kivy.png'
size_hint_x: None
width: 74
Label:
size_hint_x: None
width: 100
text: "The text"
Label:
text: "A label"
""")
class ButtonsApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ButtonsApp().run()
Run Code Online (Sandbox Code Playgroud)