我似乎无法使用纯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
作为中心点有关。
答案 0 :(得分:0)
它(你的浮动布局)不知道窗口大小...所以它使用默认大小(100,100)...所以它将按钮放在那里
尝试告诉你的浮动布局大小
cView = ContainerView(size=(500,350))