繁体   English   中英

如何在 Kivy 中填充小部件?

[英]How do I pad widgets in Kivy?

我会很快的。

为什么我可以向根小部件添加填充,但是当我尝试填充该根小部件的子小部件时它不起作用?

下面,我在 kv 文件中填充根小部件,它可以工作。

.py 文件:

import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager
from kivy.uix.screenmanager import Screen
from kivy.properties import ObjectProperty


kivy.require('1.11.1')

class EntryScreen(GridLayout):

    pass




class PrimeApp(App):
    ''' Builds all of the screens as instances. '''
    def build(self):
        self.screen_manager = ScreenManager()

        self.entry_screen = EntryScreen()
        screen = Screen(name='Entry Screen')
        screen.add_widget(self.entry_screen)
        self.screen_manager.add_widget(screen)


        return self.screen_manager


if __name__ == '__main__':
    main_app = PrimeApp()
    main_app.run()

kivy 示例,我将填充添加到根小部件。

<EntryScreen>
    cols: 1
    spacing: 20
    size_hint_x: .5
    padding: [50,50,50,50]
    
        
    Button:
        text: 'New User'
    
    Button:
        text: 'Login'
            
    Button:
        text: 'Skip Login'
                
    Button:
        text: str(root.center_x)

下面,我尝试填充小部件中的第一个按钮小部件,但它不会更新并显示任何填充。

<EntryScreen>
    cols: 1
    #spacing: 20
    #size_hint_x: .5
    #padding: [50,50,50,50]
    
    GridLayout
        cols: 1
        
        Button:
            padding: [50,50]
            text: 'New User'
    
        Button:
            text: 'Login'
            
        Button:
            text: 'Skip Login'
                
        Button:
            text: str(root.center_x)

此外,当我尝试为按钮 [50,50,50,50] 进行填充时,我收到一个错误,指出填充值是不可变的,这就是我将其设置为 [50,50] 的原因。

Button中的padding只需要一个 2 值列表。 尝试将其更改为 4 值列表将引发该错误。 请注意, Button padding 在ButtonTexture中添加了空间,它不会在Button周围添加空间(这将是Button容器的padding )。 如果Button的大小已经大于指定padding所需的大小,则padding将无效。

这是您的kv的修改版本,它将演示Buttonpadding

GridLayout
    cols: 1
    size_hint_y: None
    height: self.minimum_height
    
    Button:
        padding: [50, 50]
        text: 'New User'
        size_hint_y: None
        height: self.texture_size[1]

    Button:
        text: 'Login'
        size_hint_y: None
        height: self.texture_size[1]
        
    Button:
        text: 'Skip Login'
        size_hint_y: None
        height: self.texture_size[1]
            
    Button:
        text: str(root.center_x)
        size_hint_y: None
        height: self.texture_size[1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM