使用纯Python

时间:2016-06-25 19:00:01

标签: python kivy

我似乎无法使用纯Python代码找出对齐方式。我的理解是我们引用root来获得关系对齐。但是,我还没有能够让它发挥作用。此代码编译,运行,然后将按钮放在左下角。在0,0 coords。我在这里缺少什么?

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作为中心点有关。

1 个答案:

答案 0 :(得分:0)

它(你的浮动布局)不知道窗口大小...所以它使用默认大小(100,100)...所以它将按钮放在那里

尝试告诉你的浮动布局大小

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