首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以基维为中心的BoxLayout

以基维为中心的BoxLayout
EN

Stack Overflow用户
提问于 2021-01-11 02:13:35
回答 1查看 100关注 0票数 1

我正在学习Kivy,并尝试将主要的垂直BoxLayout与内容(方框布局、文本、输入、图像等)居中。根窗口的宽度为1200px,BoxLayout为1000px。

我尝试使用AnchorLayout而不是BoxLayout,但是内容会从窗口中消失,或者所有内容都被放在角落里,而且我不能使它居中。

此外,内容可能比根窗口更高。我怎么才能让它不跟随根的高度呢?

有人能帮我这个忙吗?

以下是Py文件:

代码语言:javascript
运行
复制
Import kivy
from kivy.app import App
from kivy.core.window import Window
Window.size = (1440, 720)
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
from kivy.core.window import Window

class Exec(Widget):
     def __init__(self, **kwargs):        
         super(Exec, self).__init__(**kwargs)  

class TC(App): 
    def build(self):
        Window.clearcolor = (25/255,26/255,25/255,0)
        return Exec()
    
if __name__ == '__main__':
    TC().run()

和KV文件。

代码语言:javascript
运行
复制
<Exec>
BoxLayout:
    orientation: 'vertical'
    BoxLayout:
        size: 1000, 700
        position_hint: {'center_x':0.5, 'center_y':0.5}
        orientation: 'vertical'
        position_hint: None, None
        position_x: 150
        GridLayout:
            cols: 2
            size_hint_y: None
            height: 75
            Image:
                source: 'traffic-light.png'
                size: self.texture_size
                size_hint_x: None
                size_hint_y: None
                width: 120
                height: 50

            Label:
                multiline: True
                font_size: 24
                markup: True
                text: "[b]Intelligent Traffic Control System[/b] \n[size=18][color=b4afaf]Developed for testing purposes only[/color][/size]"
                text_size: self.size
                halign: 'left'

        GridLayout:
            cols: 3
            size_hint_y: None
            height: 150
            Label:
                text: "Deviation"
                font_size: 18
                text_size: self.size
                halign: 'left'
            Label:
                text: "Deviation muliplier"
                font_size: 18
                text_size: self.size
                halign: 'left'
            Label:
                text: "Envelope Inflate [+]/ Deflate [-]"
                font_size: 18
                text_size: self.size
                halign: 'left'
            TextInput:
                multiline:False
                font_size: 32
                foreground_color: (1,1,1,1)
                background_color: (25/255,26/255,25/255,0)
            TextInput:
                multiline:False
                font_size: 32
                foreground_color: (1,1,1,1)
                background_color: (25/255,26/255,25/255,0)
            TextInput:
                multiline:False
                font_size: 32
                foreground_color: (1,1,1,1)
                background_color: (25/255,26/255,25/255,0)

        GridLayout:
            cols: 3
            Label:
                text: "Week days"
                font_size: 18
            Label:
                text: "Saturday"
                font_size: 18
            Label:
                text: "Sunday"
                font_size: 18

        GridLayout:
            cols: 3
            size_hint_y: None
            height: 75
            Label:
                text: "Generate random envelope"
                font_size: 18
            TextInput:
                multiline:False
                font_size: 24
            Button:
                text: "Create & Save"

这里是裁剪后的图片,内容是应该如何输入,而不是输入,其中所有内容都放在角落里。

太好了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 05:59:20

问题是您的Exec类扩展了Widget,它并不打算用作容器。尝试将您的Exec定义更改为:

代码语言:javascript
运行
复制
class Exec(FloatLayout):
    pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65656765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档