我正在制作一个应用程序,在一个屏幕上,我希望按钮堆叠在屏幕的右边缘(我需要堆栈布局)和屏幕中央的2个按钮(为此我想使用浮动布局)。我已经搜索过了,但我无处可见任何在一个屏幕上使用两种不同布局的例子。
我们可以在屏幕上使用两种不同的布局吗?如果是,我们怎么能这样做?
她的示例代码 -
from kivy.uix.stacklayout import StackLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import ScreenManager, Screen
class screen_1(Screen,Stacklayout): ''' here I tried to inherit
floatlayout, but i guess it
doesnt work that way'''
pass
class main(App):
def build(self):
return screen_1()
m = main()
m.run()
kivy代码 -
<screen_1>:
StackLayout:
orientation: 'tb-rl'
spacing: 10
padding: 90
TextInput:
text: "write your word here"
color: 1,1,1,1
id: word_input
width: 300
size_hint: None, .10
stackLayout:
orientation: 'rl-tb'
spacing: 10
padding: 90
TextInput:
text: "write your word here"
color: 1,1,1,1
答案 0 :(得分:0)
布局,湖泊所有小部件,可以嵌套。
如果您想在屏幕上使用两种布局,只需将它们放在合适的布局中即可管理各自的尺寸/位置。
首先,您可能不希望使用小部件进行多重继承,至少不从多个小部件继承(从一个小部件继承,一个或多个其他对象可以很好,但从多个小部件继承会导致问题) 。此外,Screen
已经是RelativeLayout
[1],几乎与FloatLayout
相同(只有它使孩子的pos
坐标相对于自己的坐标。) / p>
相反,你想要的是(通过嵌套)。
Screen:
StackLayout:
size_hint: .5, 1 # let's take half of the screen in width, and all of it in height
# whatever you want inside this layout
BoxLayout:
size_hint: .5, 1 # same, half of the width, all of the height
pos_hint: {'right': 1} # stick to the right of the screen
Button:
[1] https://kivy.org/docs/api-kivy.uix.screenmanager.html?highlight=screen#kivy.uix.screenmanager.Screen
[2] https://kivy.org/docs/api-kivy.uix.relativelayout.html#kivy.uix.relativelayout.RelativeLayout