使用纯Python对齐Kivy对象

2024-09-29 21:38:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我似乎无法用纯Python代码找出对齐方式。我的理解是我们引用root来获得关系对齐。但是,我没能让它工作。这段代码编译、运行,然后将按钮放在左下角。在0,0坐标处。我错过了什么

class ContainerView(FloatLayout):
    def __init__(self, **kwargs):
        super(ContainerView, self).__init__(**kwargs)

    def build(self):
        new = Button()
        new.text = "username"
        new.size = (50,50)
        new.color = [3/255,50/255,155/255,1]
        new.size_hint = [0.5,0.5]
        new.center = self.center ###This line
        self.add_widget(new)


class ScoreboardApp(App):
    def build(self):
        cView = ContainerView()
        cView.build()
        return cView

更新:

经过一系列的尝试和错误,我发现设置窗口大小,然后在.kv文件中对齐是可行的,但我不知道为什么。如果我把窗口大小记录到控制台上,它仍然会给我计算机的实际尺寸

main.py:

from kivy.core.window import Window

### Set window size
Window.size = (1440, 800)

### Set size_hint in draw function
class ClientScoreboard(GridLayout):
    containerView = ContainerView()
    numberOfRows = 0
    numberOfColumns = 0

    def buildClientScoreboard(self):
        self.cols = self.numberOfColumns
        self.rows = self.numberOfRows
        self.size_hint = (0.75, 0.85)

.kv

<ContainerView>
    ClientScoreboard:
        id: client_scoreboard
        x: 375
        y: self.parent.height - self.height - 25.0

我怀疑它与引用FloatLayout作为中心点有关


Tags: 代码buildselfnewsizeinitdefkwargs
1条回答
网友
1楼 · 发布于 2024-09-29 21:38:35

它(你的floatlayout)不知道窗口大小。。。所以它使用默认大小(100100)。。。所以它把按钮放在中间

试着告诉你的浮动布局它的大小

cView = ContainerView(size=(500,350))

相关问题 更多 >

    热门问题