如何在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中居中按钮?的主要内容,如果未能解决你的问题,请参考以下文章