kivy小部件:多个按钮,居中,获取窗口/屏幕尺寸

Rmor91

我构建的以下应用程序共有4个小部件,其中1个主要小部件包含3个Button小部件。我试图将按钮在主窗口小部件/屏幕上居中,但是即使屏幕大得多,主窗口小部件的宽度和高度尺寸似乎也只有100,100。因此,当我尝试将按钮居中放置在屏幕上时,它仍然位于左下角。我可以通过手动设置坐标以将按钮居中放置在窗口上来更改每个按钮的center_x和center_y,但是一旦我调整窗口大小,按钮将不再居中。关于如何获取当前屏幕尺寸和宽度的任何想法,无论窗口大小如何,按钮都将始终位于正确的位置?这是我到目前为止的内容:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button




class MyApp(App):
    def build(self):
        start=Widget()

        startbtn=Button(text="Start")
        optionsbtn=Button(text="Options")
        exitbtn=Button(text="Exit")

        start.add_widget(startbtn)
        start.add_widget(optionsbtn)
        start.add_widget(exitbtn)

        startbtn.center=(start.width,start.height)
        optionsbtn.center_x+=200
        optionsbtn.center_y+=100
        exitbtn.center=start.center

        return start

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

如果进行测试,您会发现退出按钮不在居中,而只是位于左下角。

激进的

你的start小部件只是有默认的大小100, 100在您设定的其他中心性质的点。即使将其添加到布局中(直到您的功能完成后才生效),这都是正常的行为。在这种情况下,即使这样也没关系,因为开始没有设置大小,也没有添加任何内容,因此没有理由将其大小设置为其他大小。

通常,对于kivy,您想以不同的方式工作-不要尝试仅设置一次类似大小的内容,而是绑定到另一个小部件的大小,然后它将被自动更新。在这种情况下,您可以执行例如start.bind(center=startbtn.setter('center')),这是获得设置startbtn中心的函数的一个技巧-每当start中心发生变化时都会调用该函数

即使在这里过分杀伤,最好还是使用布局类(例如:anchorlayout)作为顶层窗口小部件。这将为您完成所有工作,并自动将其子项居中。您可以在其他布局中插入其他3个按钮,以使其具有相对位置。

使用kv语言也使此操作变得更容易,该语言仅根据属性引用自动创建绑定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 kivy 中的弹出窗口小部件更改屏幕?

来自分类Dev

在python中获取kivy小部件的类型(标签,按钮等)

来自分类Dev

在Flutter中,如何在较大的屏幕尺寸上修复PopupMenuItem窗口小部件中的截断文本?

来自分类Dev

在窗口小部件内居中

来自分类Dev

简单按钮小部件的大小在不同的屏幕尺寸上有所不同

来自分类Dev

如何引用使用KV语言在kivy中创建的不同屏幕的窗口小部件?

来自分类Dev

获取按钮小部件的文本

来自分类Dev

删除 kivy 小部件中的按钮

来自分类Dev

Python tkinter 单选按钮小部件在单个窗口中工作,但不在多个窗口中工作

来自分类Dev

Tk窗口布局,窗口小部件尺寸最大化

来自分类Dev

在Kivy中启动多个小部件

来自分类Dev

Kivy管理多个页面和小部件

来自分类Dev

从 Kivy 中的不同小部件获取属性

来自分类Dev

如何获取窗口小部件在屏幕中的位置(最好在“偏移”中)?

来自分类Dev

通过在另一个屏幕中按按钮来更改Kivy按钮小部件属性

来自分类Dev

获取我的主屏幕小部件的大小

来自分类Dev

在特定像素位置绘制小部件以适应不同的屏幕尺寸

来自分类Dev

在特定像素位置绘制小部件以适应不同的屏幕尺寸

来自分类Dev

如何在BoxLayout中将kivy小部件相对于其他小部件居中?

来自分类Dev

在窗口[tkinter]中将许多小部件居中

来自分类Dev

Python Kivy:向屏幕动态添加小部件

来自分类Dev

窗口小部件功能共享不需要的属性[kivy]

来自分类Dev

如何在Kivy中固定小部件?(或窗口)

来自分类Dev

__init__中的Kivy窗口小部件ID访问

来自分类Dev

小部件不能居中

来自分类Dev

如何获取字典值的Python列表并在Kivy UI中显示为表格(使用ListView窗口小部件)?

来自分类Dev

从多个小部件获取分辨率

来自分类Dev

在窗口中将小部件滚动出屏幕

来自分类Dev

tkinter将两个或多个小部件居中

Related 相关文章

  1. 1

    如何使用 kivy 中的弹出窗口小部件更改屏幕?

  2. 2

    在python中获取kivy小部件的类型(标签,按钮等)

  3. 3

    在Flutter中,如何在较大的屏幕尺寸上修复PopupMenuItem窗口小部件中的截断文本?

  4. 4

    在窗口小部件内居中

  5. 5

    简单按钮小部件的大小在不同的屏幕尺寸上有所不同

  6. 6

    如何引用使用KV语言在kivy中创建的不同屏幕的窗口小部件?

  7. 7

    获取按钮小部件的文本

  8. 8

    删除 kivy 小部件中的按钮

  9. 9

    Python tkinter 单选按钮小部件在单个窗口中工作,但不在多个窗口中工作

  10. 10

    Tk窗口布局,窗口小部件尺寸最大化

  11. 11

    在Kivy中启动多个小部件

  12. 12

    Kivy管理多个页面和小部件

  13. 13

    从 Kivy 中的不同小部件获取属性

  14. 14

    如何获取窗口小部件在屏幕中的位置(最好在“偏移”中)?

  15. 15

    通过在另一个屏幕中按按钮来更改Kivy按钮小部件属性

  16. 16

    获取我的主屏幕小部件的大小

  17. 17

    在特定像素位置绘制小部件以适应不同的屏幕尺寸

  18. 18

    在特定像素位置绘制小部件以适应不同的屏幕尺寸

  19. 19

    如何在BoxLayout中将kivy小部件相对于其他小部件居中?

  20. 20

    在窗口[tkinter]中将许多小部件居中

  21. 21

    Python Kivy:向屏幕动态添加小部件

  22. 22

    窗口小部件功能共享不需要的属性[kivy]

  23. 23

    如何在Kivy中固定小部件?(或窗口)

  24. 24

    __init__中的Kivy窗口小部件ID访问

  25. 25

    小部件不能居中

  26. 26

    如何获取字典值的Python列表并在Kivy UI中显示为表格(使用ListView窗口小部件)?

  27. 27

    从多个小部件获取分辨率

  28. 28

    在窗口中将小部件滚动出屏幕

  29. 29

    tkinter将两个或多个小部件居中

热门标签

归档