Python kivy 较低的小部件位置
Posted
技术标签:
【中文标题】Python kivy 较低的小部件位置【英文标题】:Python kivy lower widget position 【发布时间】:2022-01-24 03:09:47 【问题描述】:您好,我正在用 kivy 制作足球比赛,每当比赛结束时,足球就在屏幕中间,但比我想要的高一点。我怎样才能使足球低一点?下面是我的代码!任何帮助都会得到帮助!谢谢!
main.py
def game_over(self):
self.root.ids.game_screen.ids.ball.center = self.root.center
print("game over")
self.frames.cancel()
self.root.ids.game_screen.ids.start_button.disabled = False
self.root.ids.game_screen.ids.start_button.opacity = 1
self.root.ids.game_screen.ids.over.opacity = 1
gamescreen.kv
Ball:
source: "icons/ball.png"
size_hint: None, None
size: 525, 525
center_x: root.width / 2
id: ball
【问题讨论】:
【参考方案1】:您可以使用FloatLayout 然后添加自定义pos_hint 属性来更改球的位置
示例:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
class MainApp(App):
def build(self):
myLayout = FloatLayout()
myLayout.add_widget(Label(text="Hello, World!", pos_hint="center_x":.5, "center_y":.6))
return myLayout
MainApp().run()
KV 语言示例:
from kivy.app import App
from kivy.lang.builder import Builder
KV = """
FloatLayout:
Label:
text:"Hello, World"
pos_hint:"center_x":.5, "center_y":.6
"""
class MainApp(App):
def build(self):
self.kv = Builder.load_string(KV)
return self.kv
MainApp().run()
两个代码的结果都是一个标签,在屏幕中间稍上方带有文本“Hello, World”
【讨论】:
我只希望我的足球在比赛结束后与第一张图片上的位置相同 尝试将此行添加到您的game_over
函数中:self.root.ids.game_screen.ids.ball.center_x = self.root.width/2
以上是关于Python kivy 较低的小部件位置的主要内容,如果未能解决你的问题,请参考以下文章