Kivy AnchorLayout .Kv 文件
Kivy AnchorLayout .Kv file
我是 Kivy 的新手。我希望我的 Label 位于左侧,但它始终位于中心,我做错了什么?
.py
`
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.label import Label
class Display(BoxLayout):
pass
class Screen_One(Screen):
pass
class Screen_Two(Screen):
pass
class Screen_Three(Screen):
pass
class DemoApp(App):
icon = 'icon.png'
title = 'control panel'
def build(self):
return Display()
if __name__ == '__main__':
DemoApp().run()
这是 .kv 文件的一小段。
<Screen_Two>:
name: 'screen_two'
# BoxLayout:
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
Label:
text: 'test box position'
感谢任何有用的回答。
问题是子窗口小部件的默认大小是填充其父窗口小部件,因此您的 anchor_x
和 anchor_y
无效。要修复它,只需将 Label
的大小设置为合理的值:
<Screen_Two>:
name: 'screen_two'
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
Label:
text: 'test box position'
size_hint: (None, None)
size: self.texture_size
我是 Kivy 的新手。我希望我的 Label 位于左侧,但它始终位于中心,我做错了什么?
.py `
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.label import Label
class Display(BoxLayout):
pass
class Screen_One(Screen):
pass
class Screen_Two(Screen):
pass
class Screen_Three(Screen):
pass
class DemoApp(App):
icon = 'icon.png'
title = 'control panel'
def build(self):
return Display()
if __name__ == '__main__':
DemoApp().run()
这是 .kv 文件的一小段。
<Screen_Two>:
name: 'screen_two'
# BoxLayout:
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
Label:
text: 'test box position'
感谢任何有用的回答。
问题是子窗口小部件的默认大小是填充其父窗口小部件,因此您的 anchor_x
和 anchor_y
无效。要修复它,只需将 Label
的大小设置为合理的值:
<Screen_Two>:
name: 'screen_two'
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
Label:
text: 'test box position'
size_hint: (None, None)
size: self.texture_size