gpt4 book ai didi

python - Kivy:为什么 BoxLayout 将我的按钮推到底部?

转载 作者:行者123 更新时间:2023-12-05 08:55:02 25 4
gpt4 key购买 nike

我是 Kivy 的新手,但正在努力掌握它的窍门。我正在以“在 Kivy 中创建应用程序”中的示例作为模板,但我什至在第一章中迷路了。出于某种原因,我的按钮被推到了应用程序的底部。我是否遗漏了他们在那里出现的一些关键信息?

我的python文件:

import kivy

from kivy.app import App
from kivy.uix.button import Label
from kivy.uix.boxlayout import BoxLayout

# In the kv file, everything to the right of the colon is pure python
# for loading python module in kv file, use format of #: import keyword module_name
class WeatherWidget(BoxLayout):
def printing_test(self):
print('This is a test')

class DailyViewApp(App):
def build(self):
return WeatherWidget()

if __name__ == '__main__':
DailyViewApp().run()

我的kv文件:

<WeatherWidget>:
orientation: "vertical"
BoxLayout:
height: "30dp"
size_hint_y: None
Button:
text: 'New York, NY'
size_hint_x: 1
on_press: root.printing_test()
Button:
text: 'Test'
size_hint_x: 0.25

My (incorrect) output:

最佳答案

在 BoxLayout 和垂直方向中,第一个 widget 放置在窗口的底部,当下面添加更多 widget 时向上滚动。如果您希望它出现在窗口的顶部,您将不得不使用 pos,或者添加另一个 boxlayout (size_hint_y = 0.9) 来填充剩余空间,或添加小部件,直到它填满剩余空间。使用 pos,您将必须计算高度,如示例 1 所示。

pos: 0, root.height - 30

如果您要在按钮下方/外部框布局中放置更多小部件,我建议使用 GridLayout 作为根小部件,如示例 2 所示。

示例 1 - 嵌套的 BoxLayout

dailyview.kv

#:kivy 1.10.0

<WeatherWidget>:
orientation: "vertical"
pos: 0, root.height - 30
BoxLayout:
height: "30dp"
size_hint_y: None
Button:
text: 'New York, NY'
size_hint_x: 1
on_press: root.printing_test()
Button:
text: 'Test'
size_hint_x: 0.25

输出 1 - 嵌套的 BoxLayout

enter image description here

示例 2 - 网格布局

主.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout

# In the kv file, everything to the right of the colon is pure python
# for loading python module in kv file, use format of #: import keyword module_name


class WeatherWidget(GridLayout):
def printing_test(self):
print('This is a test')


class DailyViewApp(App):
def build(self):
return WeatherWidget()


if __name__ == '__main__':
DailyViewApp().run()

dailyview.kv

#:kivy 1.10.0

<WeatherWidget>:
cols: 1
BoxLayout:
height: "30dp"
size_hint_y: None
Button:
text: 'New York, NY'
size_hint_x: 1
on_press: root.printing_test()
Button:
text: 'Test'
size_hint_x: 0.25

输出 2 - GridLayout

enter image description here

关于python - Kivy:为什么 BoxLayout 将我的按钮推到底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47399358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com