【问题标题】:Allign button to the left in Kivy在 Kivy 中将按钮向左对齐
【发布时间】:2016-12-20 02:58:33
【问题描述】:

当执行某些操作时,我需要制作几个按钮以显示在当前GridLayout 的右侧。

我已经尝试了整个屏幕的FloatLayout,但我无法让它以相对位置向左移动(因为我将使用多个屏幕分辨率)。 我没有代码,但我必须从.py 开始,因为它遵循一定的逻辑出现。 我在 .kv 中试过这个:

    FloatLayout:
    Button:
        size_hint: 0.4, 0.2
        pos: root.width, root.height / 2
    GridLayout: 

将 pos 更改为 pos_hinthalign: 'right' 但也没有用

在 .py 代码中,我尝试将其添加到 on_touch_down 方法中,这样每次都会出现一个按钮,例如 boton = Button(text='caca', pos=self.width - root.x, root.height / 2) 但它也没有

欢迎任何帮助!

【问题讨论】:

  • 请贴一些您尝试过的代码?
  • @toto_tico 我添加了我尝试过的代码,很抱歉我还是新手,仍然不知道如何正确提问
  • 那些坐标会将按钮发送到屏幕之外。通过代码,我的意思是一个完整的非工作示例,我们可以复制确切的问题并且社区更容易提供帮助。除此之外,我们必须简单地猜测上下文。

标签: python button kivy


【解决方案1】:

您的数学计算不正确,您需要将按钮的宽度减去x 位置,将按钮高度的一半减去y 位置。

pos: root.width-self.width, root.height / 2 - self.height / 2

这是一个完整的工作示例。

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder

Builder.load_string('''
<Base>:
    FloatLayout:
        Button:
            size_hint: 0.4, 0.2
            pos: root.width-self.width, root.height / 2 - self.height / 2
            text: 'hola'
    GridLayout:
        cols: 2
        Label:
            text: 'A'
        Label:
            text: 'B'
''')    

class Base(FloatLayout):
    pass

class BaseApp(App):
    def build(self):
        return Base()

BaseApp().run()

不过使用pos_hint 更容易实现:

pos_hint: {'right': 1, 'center_y': .5}

所以,像这样:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout

from kivy.lang import Builder


Builder.load_string('''
<Base>:
    FloatLayout:
        Button:
            size_hint: 0.4, 0.2
            pos_hint: {'right': 1, 'center_y': .5}
            text: 'hola'
    GridLayout:
        cols: 2
        Label:
            text: 'A'
        Label:
            text: 'B'
''')    

class Base(FloatLayout):
    pass

class BaseApp(App):
    def build(self):
        return Base()

BaseApp().run()

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 1970-01-01
    • 2020-06-29
    • 2019-01-16
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多