python - 如何在kivy窗口中放置两个按钮?

标签 python kivy

我知道这个问题可能已经被问过,但我是 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/

相关文章:

python 基维 : animation won't run when called from clock event

python - 如何将两个不同的 gif 绑定(bind)到 kivy 中的切换按钮?

python - 使用 pandas,我如何有效地按组对大型 DataFrame 进行子采样?

python - Pandas one liner 通过特定列上的唯一计数过滤行

python - 将文件上传到 ftp 服务器时出错

python - 多维图像阵列的移动/运行窗口

python - 添加 - 删除 kivy 中的小部件

python - "python way"解析并有条件地替换二维列表中的每个元素

python - Kivy buildozer 在为 Android 打包时使用错误版本的 Kivy 和 KivyMD

python - 禁用微调器的背景颜色