如何在不改变屏幕的情况下将按钮分成更小的按钮(网格布局)



例如,下面是代码

. py文件
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
class ScreenOne(Screen):
pass
class WindowManager(ScreenManager):
pass
kv = Builder.load_file("testing.kv")
class ScreenApp(App):
def build(self):
return kv

if __name__ == '__main__':
ScreenApp().run()

。kv的

WindowManager:
ScreenOne:
<ScreenOne>:
GridLayout:
size: root.height, root.width
rows: 2
Button:
text: "Break this button into 3 smaller buttons"
Label:
text: ""

当按钮被点击时,我想把按钮分成3个较小的按钮。你能帮我写一个on_release命令吗?

<ScreenOne>:
GridLayout:
btn: remove
size: root.height, root.width
rows: 2
Button:
id: remove
text: "Break this button into 3 smaller buttons"
on_press: root.break_into_three()

然后在ScreenOne类中创建一个名为break_into_three的函数并定义如下:

class ScreenOne(Screen):

def break_into_three(self):
self.add_widget(Button(text='Button1'))
self.add_widget(Button(text='Button2'))
self.add_widget(Button(text='Button3'))
self.remove_widget(self.btn)  # removes the initial Button

我没有一个工作的Kivy环境来测试这个,但是我想你明白了。

最新更新