如何在kivy中居中按钮?
how to center a button in kivy?
您好,我正在制作一个应用程序,但出现了问题。在不同的屏幕上各有 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
的使用不正确。如documentation所示,pos_hint
是字典。要使用 pos_hint
使小部件居中,您可以使用:
pos_hint: {'center_x':0.5, 'center_y':0.5}
您好,我正在制作一个应用程序,但出现了问题。在不同的屏幕上各有 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
的使用不正确。如documentation所示,pos_hint
是字典。要使用 pos_hint
使小部件居中,您可以使用:
pos_hint: {'center_x':0.5, 'center_y':0.5}