我知道这个问题可能已经被问过,但我是 Kivy 的初学者,所以我希望有人解释如何在同一屏幕上放置两个按钮。
问题是我尝试返回
按钮变量,并且它有效。但是,当我尝试同时返回两个时,它会给我一个错误。
这是我的代码:
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from functools import partial
class App(App):
def com1(self, instance, *args):
label1 = Label(text = "Hi")
return label1
def com2(self, instance, *args):
label = Label(text= "Bye")
def build(self):
button1 = Button(text = "Hi", size_hint = (0.25, 0.18), pos = (350, 100))
button1.bind(on_press=partial(self.com1, button1))
button2 = Button(text = "Bye", size_hint = (0.25, 0.18), pos = (350, 200))
button2.bind(on_press=partial(self.com2, button2))
return button1, button2
App().run()
最佳答案
构建方法必须返回单个小部件,因此根据您希望按钮的排列方式,您有多个选项,例如 BoxLayout、RelativeLayout、FloatLayout 等。在本例中,为了简单起见,我将使用 BoxLayout:
# ...
<b>from kivy.uix.boxlayout import BoxLayout</b>
# ...
class App(App):
# ...
def build(self):
button1 = Button(text="Hi", size_hint=(0.25, 0.18), pos=(350, 100))
button1.bind(on_press=partial(self.com1, button1))
button2 = Button(text="Bye", size_hint=(0.25, 0.18), pos=(350, 200))
button2.bind(on_press=partial(self.com2, button2))
<b>boxlayout = BoxLayout()
boxlayout.add_widget(button1)
boxlayout.add_widget(button2)
return boxlayout</b>
# ...
关于python - 如何在kivy窗口中放置两个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59727721/