0
点赞
收藏
分享

微信扫一扫

kivy AnchorLayout 布局实例


from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
from kivy.core.text import LabelBase

LabelBase.register("Roboto", "HelloKitty.TTF")


class AnchorLayoutW(AnchorLayout):
    def __init__(self):
        super(AnchorLayoutW, self).__init__()
        # self.join = Button(text="hello world")
        # self.add_widget(self.join)


class AnchorApp(App):
    def __init__(self):
        super(AnchorApp, self).__init__()

    def build(self):
        return AnchorLayoutW()


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

<AnchorLayoutW>:
    padding:20
    AnchorLayout:
        anchor_x:"left"
        anchor_y:"top"
        Button:
            text:"你好 chatGPT"
            size_hint:.2,.15
    AnchorLayout:
        anchor_x:"right"
        anchor_y:"bottom"
        Button:
            text:"你好 chatGPT"
            size_hint:.2,.15

Kivy中的AnchorLayout是一种布局管理器,用于将Widget放置在屏幕上的特定位置。 AnchorLayout使用锚点和边距来定义每个Widget的位置和大小。锚点是以屏幕为基础的百分比位置,而边距是以像素为单位的偏移量。
例如,假设你想放置一个按钮,距离屏幕顶部和右侧边缘各10%的距离,并且按钮的大小为100x50像素。使用AnchorLayout,可以使用以下代码来实现:
from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.button import Button

class AnchorLayoutApp(App):
    def build(self):
        layout = AnchorLayout(anchor_x='right', anchor_y='top', padding=[10, 10, 0, 0])
        btn = Button(text='Button', size_hint=(None, None), size=(100, 50))
        layout.add_widget(btn)
        return layout

AnchorLayoutApp().run()
在这个例子中,AnchorLayout的anchor_x和anchor_y属性分别设置为'right'和'top',这意味着锚点在屏幕的右上角。padding属性设置为[10, 10, 0, 0],这样按钮就会距离右上角10%的距离,并且不会发生重叠。按钮的大小设置为100x50像素,并且使用了size_hint 和size来设置大小。
可能需要尝试不同的锚点和边距,以找到满足您布局需求的最佳设置。

举报

相关推荐

0 条评论