我想获得根小部件的大小,以便我可以用它来计算子小部件的大小和位置。这是我的简单代码:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
class PictoGame(FloatLayout):
def __init__(self):
FloatLayout.__init__(self)
self.add_widget(Button(text = "Button 1", size = (10,10)) )
class PictoApp(App):
def build(self):
my_game = PictoGame()
print str(my_game.size)
return my_game
PictoApp().run()
打印出的尺寸是[1,1]?我看到的是大窗户,所以不能[1,1] 按钮占据窗口的完整大小,而不是(10,10)。我想要。
必须有一些我错过的kivy概念。请帮助我,非常感谢。
答案 0 :(得分:0)
使用kivy,您通常不应该尝试手动管理这样的大小 - 您可以这样做,但这是更难的方法。相反,使用布局为您完成工作。
我举个例子,但我不确定你要做什么。
如果您确定要手动完成所有操作,可以使用Clock.schedule(some_function,0)来安排一个根据您的喜好设置大小和位置的功能。只有确定了所有内容的大小后,时钟才会调用它。
答案 1 :(得分:0)
您是否尝试过使用size_hint_y,size_hint_x和pos_hint?
Button:
size_hint_x: .25
size_hint_y: .1
pos_hint: {'x': .375, 'y': .25}
这将有助于根据窗口大小自动调整按钮的大小和位置。
答案 2 :(得分:0)
窗口大小(由@inclement对另一个答案的评论)位于kivy.core.window.Window.size
一个简单的用法是:
from kivy.core.window import Window
...
window_width, window_height = Window.size
变量window_width
和window_height
将获得根窗口的大小。