将网格布局放置在网格布局kivy内



我试图将一个网格布局(包含4个文本输入(定位在kivy中另一个网格布置(在我的情况下是rootwidget-RegistrationWindow(的中心,但似乎什么都不起作用。

这是我的.kv文件,根小部件是一个网格布局

<RegistrationWindow>
cols:1
canvas.before:
Rectangle:
size: self.size
pos:self.pos
source:"emotion.jpg"
GridLayout:
cols: 2
size_hint: None,None
size:root.width,root.height/14
Label:
text: "Button 1"
size_hint_x:0.95
Button:
text: "X"
size_hint_x: 0.05
GridLayout:
cols:1
size_hint: None, None
size:root.width, root.height/2
TextInput:
multiline:False
TextInput:
multiline:False
TextInput:
multiline:False
TextInput:
multiline:False

这是我的.py文件

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.lang.builder import Builder

class RegistrationWindow(GridLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)

kv = Builder.load_file("emotions.kv")

class RegistrationApp(App):
def build(self):
return RegistrationWindow()

if __name__ == "__main__":
RegistrationApp().run()

我认为您的问题是缩进问题。既然你想在RegistrationWindow中添加GridLayouts,你的.kv文件应该更像这样:

(您可以根据自己的喜好进一步重新排列GridLayouts,或者将GridLayout缩进更多以将其放入另一个GridLayout中。(

<RegistrationWindow>
cols:1
canvas.before:
Rectangle:
size: self.size
pos:self.pos
source:"emotion.jpg"
GridLayout:
cols: 2
size_hint: None,None
size:root.width,root.height/14
Label:
text: "Button 1"
size_hint_x:0.95
Button:
text: "X"
size_hint_x: 0.05
GridLayout:
cols:1
size_hint: None, None
size:root.width, root.height/2
TextInput:
multiline:False
TextInput:
multiline:False
TextInput:
multiline:False
TextInput:
multiline:False

最新更新