![](/img/trans.png)
[英]Button on Floatlayout is Not working while executing code in kivy
[英]Kivy RelativeLayout vs FloatLayout
這是來自Kivy相對布局的文檔。 https://kivy.org/docs/api-kivy.uix.relativelayout.html
相對布局:此布局允許您設置子項的相對坐標。 如果要絕對定位,請使用FloatLayout。 RelativeLayout類的行為與常規FloatLayout相同,不同之處在於其子窗口小部件相對於布局定位。 將position =(0,0)的窗口小部件添加到RelativeLayout時,當更改RelativeLayout的位置時,子窗口小部件也將移動。 子窗口小部件的坐標始終為(0,0),因為它們始終相對於父布局。
我看到Floatlayout也一樣。 實際上,取決於使用pos_hint還是pos,Floatlayout和RelativeLayout都支持絕對和相對定位。
同樣在現實中,無論絕對位置和相對位置如何,當布局的位置更改時都將移動小部件。
請參閱下面的python程序。 FloatVerification和RelativeVerification類在窗口大小和布局大小方面的行為均相同。 我想掌握一些方面嗎?
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.uix.button import Button
class FloatVerification(App):
def build(self):
bl = BoxLayout()
fl1 = FloatLayout()
fl2 = FloatLayout()
b1 = Button(size_hint=(.5,.5),
pos_hint={'top':.5,'right':.5},
text="Hello")
b2 = Button(size_hint=(.5,.5),
pos_hint={'top':.5,'right':.5},
text="Hello")
fl1.add_widget(b1)
fl2.add_widget(b2)
bl.add_widget(fl1)
bl.add_widget(fl2)
return bl
class RelativeVerification(App):
def build(self):
bl = BoxLayout()
rl1 = RelativeLayout()
rl2 = RelativeLayout()
b1 = Button(size_hint=(.5,.5),
pos_hint={'top':.5,'right':.5},
text="Hello")
b2 = Button(size_hint=(.5,.5),
pos_hint={'top':.5,'right':.5},
text="Hello")
rl1.add_widget(b1)
rl2.add_widget(b2)
bl.add_widget(rl1)
bl.add_widget(rl2)
return bl
if __name__ == "__main__":
FloatVerification().run()
#RelativeVerification().run()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.