将gridlayout放置在gridlayout kivy内

2024-09-29 01:26:39 发布

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

我试图将一个gridlayout(包含4个文本输入)放置在kivy中另一个gridlayout(在我的例子中是rootwidget-ResRegistrationWindow)的中心,但似乎没有任何效果

这是我的.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()


Tags: fromselfnonefalsesizeroottextinputmultiline
1条回答
网友
1楼 · 发布于 2024-09-29 01:26:39

我认为你的问题是凹痕的问题。由于您希望在RegistrationWindow中添加GridLayouts,因此.kv文件的外观应如下所示:

(您可以根据需要进一步重新排列GridLayout,或者进一步缩进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

相关问题 更多 >