[英]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 在Button
的Texture
中添加了空间,它不会在Button
周围添加空间(这将是Button
容器的padding
)。 如果Button
的大小已经大于指定padding
所需的大小,则padding
将无效。
这是您的kv
的修改版本,它将演示Button
的padding
:
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.