gpt4 book ai didi

android - Kivy:减少小部件之间的额外间距

转载 作者:行者123 更新时间:2023-11-30 02:09:25 24 4
gpt4 key购买 nike

我有一个 Kivy 应用程序,它使用一个包含两行的 GridLayout。第一行包含一个带有项目列表的下拉按钮。第二行包含一个带有两个标签的 BoxLayout。

我注意到这两个小部件(下拉列表和标签)之间有很多空间。这是截图

enter image description here

我希望“左标签”和“右标签”直接显示在“选择英雄”按钮下方。我尝试使用 'anchor_x' 和 'anchor_y' 值,但它似乎不会影响布局。

这是我的 main.py:

from kivy.app import App
from kivy.properties import ObjectProperty, StringProperty, ListProperty
from kivy.uix.button import Button
from kivy.uix.dropdown import DropDown
from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition

class HeroScreen(Screen):
dropdown = DropDown()
dd_btn = ObjectProperty(None)

def __init__(self, **kwargs):
super(HeroScreen, self).__init__(**kwargs)
dropdown_list = [
'Ant Man',
'Batman',
'Cat Woman',
'Danger Mouse',
]
for hero in dropdown_list:
btn = Button(text=hero, size_hint_y=None, height=30)
btn.bind(on_release=lambda btn: self.say_hero(btn.text))
self.dropdown.add_widget(btn)

self.dd_btn = Button()
self.dd_btn.bind(
on_release=self.dropdown.open,
)

def say_hero(self, hero_name):
print "Hero: ", hero_name

class HeroApp(App):
screen_manager = None

def build(self):
self.screen_manager = ScreenManager(transition=NoTransition())
self.screen_manager.add_widget(HeroScreen(name='hero_screen'))
return self.screen_manager

if __name__ == "__main__":
HeroApp().run()

这是我的 hero.kv:

<HeroScreen>:
rows: 2
dd_btn: dd_btn_id
AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
BoxLayout:
size_hint_y: None
height: 30
orientation: 'horizontal'
BoxLayout:
size_hint_x: .4
Button:
id: dd_btn_id
text: 'Select Hero'
on_release: root.dropdown.open(self)

AnchorLayout:
anchor_x: 'left'
anchor_y: 'top'
BoxLayout:
orientation: "horizontal"
width: 400
size_hint_x: None
Label:
text: "Left Label"
font_size: "20dp"
Label:
text: 'Right Label'
font_size: "20dp"

让这两行看起来彼此靠近的正确方法是什么?

最佳答案

小部件之间没有空间,只是标签的文本位于每个标签的中间(填充了整个垂直间隙)。

您可以通过多种方式解决这个问题。最好的可能取决于您以后还想更改什么,但一个简单的选择是手动将包含标签的 BoxLayout 的高度设置为更小的值,例如40.

关于android - Kivy:减少小部件之间的额外间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30325763/

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