如何在kivy中居中按钮?

Posted

技术标签:

【中文标题】如何在kivy中居中按钮?【英文标题】:how to center a button in kivy? 【发布时间】:2021-06-08 11:31:56 【问题描述】:

您好,我正在制作应用程序,但出现了问题。在不同的屏幕上各有 2 个按钮。如何使两个按钮居中? 第一个按钮在 MainWindow 中,第二个按钮在 ImportWindow 中。 请检查我的代码。 两个按钮都显示在 (0,0) 位置。我想将位置设置在中心。

这是 .py 文件

from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.uix.screenmanager import ScreenManager, Screen


class MainWindow(Screen):
    pass


class ImportWindow(Screen):
    pass


class WindowManager(ScreenManager):
    pass


class MySplashScreenApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(MainWindow(name='main'))
        sm.add_widget(ImportWindow(name='second'))
        return sm
        return MainWindow()


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

这是.kv文件

WindowManager:
    MainWindow:
    ImportWindow:


<MainWindow>:
    Button:
        text: "Start"
        font_size: 12
        size: 75, 50
        size_hint: None, None
        pos_hint: 100, 100
        on_release:
            root.manager.current = "second"
            root.manager.transition.direction = 'left'


<ImportWindow>:
    Button:
        text: "Import"
        font_size: 12
        size: 75, 50
        size_hint: None, None
        pos_hint: 100, 100
        on_release:
            root.manager.current = "main"
            root.manager.transition.direction = 'right'

【问题讨论】:

看看pos_hint。 @JohnAnderson 我试过了,但是没用 请更新您的问题以显示您尝试过的内容。 @JohnAnderson 请检查 @JohnAnderson 您给定的代码行有效,但仅适用于第二个按钮,即导入按钮。但它不适用于第一个按钮,即开始按钮。 :( 【参考方案1】:

您对pos_hint 的使用不正确。如documentation 所示,pos_hint 是一个字典。为了使用pos_hint 使小部件居中,您可以使用:

pos_hint: 'center_x':0.5, 'center_y':0.5

【讨论】:

以上是关于如何在kivy中居中按钮?的主要内容,如果未能解决你的问题,请参考以下文章

在 kivi 中居中文本字段

如何在 ViewController 中居中多个按钮?

如何在水平stackview中居中按钮?

如何使用 SnapKit 在 ScrollView 中居中按钮数组

如何在固定宽度的 div 中居中动态宽度按钮?

如何在材质ui中居中按钮?