KivyMD MDBoxLayout 对齐问题
KivyMD MDBoxLayout Alignment Issue
在 MDBoxLayout
中,我试图对齐 4 个小部件。
这是我的布局代码:
class MusicPlayer(MDBoxLayout):
def __init__(self, file):
super().__init__(orientation='horizontal', spacing=10, padding=5, size_hint_y=None)
self.file = file
self.progress_bar = MDSlider(min=0, max=100, show_off=False)
self.elapsed_label = MDLabel(text='0:00', size_hint_x=0.2)
self.remaining_label = MDLabel(text='0:00', size_hint_x=0.2)
self.add_widget(MDIconButton(icon='play', on_press=self.play_pause))
self.add_widget(self.elapsed_label)
self.add_widget(self.progress_bar)
self.add_widget(self.remaining_label)
def play_pause(self, button):
button.icon = 'pause' if button.icon == 'play' else 'play'
结果如下:
如您所见,MDIconButton
未与其余小部件对齐,第一个 MDLabel 略高于其余小部件。非常感谢任何对齐这些小部件的帮助!
class MusicPlayer(MDBoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.spacing = 10
self.padding = 5
self.size_hint_y = None
self.md_bg_color = (0, 1, 1, 0.3)
self.progress_bar = MDSlider(min=0, max=100, show_off=False)
self.elapsed_label = MDLabel(text='0:00', pos_hint={"center_y": 0.5}, size_hint=(None, None))
self.elapsed_label.text_size = (None, None)
self.elapsed_label.height = self.elapsed_label.texture_size[1]
self.remaining_label = MDLabel(text='0:00', pos_hint={"center_y": 0.5}, size_hint=(None, None))
self.remaining_label.text_size = (None, None)
self.remaining_label.height = self.remaining_label.texture_size[1]
self.add_widget(MDIconButton(icon='play', pos_hint={"center_y": 0.5}))
self.add_widget(self.elapsed_label)
self.add_widget(self.progress_bar)
self.add_widget(self.remaining_label)
在 MDBoxLayout
中,我试图对齐 4 个小部件。
这是我的布局代码:
class MusicPlayer(MDBoxLayout):
def __init__(self, file):
super().__init__(orientation='horizontal', spacing=10, padding=5, size_hint_y=None)
self.file = file
self.progress_bar = MDSlider(min=0, max=100, show_off=False)
self.elapsed_label = MDLabel(text='0:00', size_hint_x=0.2)
self.remaining_label = MDLabel(text='0:00', size_hint_x=0.2)
self.add_widget(MDIconButton(icon='play', on_press=self.play_pause))
self.add_widget(self.elapsed_label)
self.add_widget(self.progress_bar)
self.add_widget(self.remaining_label)
def play_pause(self, button):
button.icon = 'pause' if button.icon == 'play' else 'play'
结果如下:
如您所见,MDIconButton
未与其余小部件对齐,第一个 MDLabel 略高于其余小部件。非常感谢任何对齐这些小部件的帮助!
class MusicPlayer(MDBoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.spacing = 10
self.padding = 5
self.size_hint_y = None
self.md_bg_color = (0, 1, 1, 0.3)
self.progress_bar = MDSlider(min=0, max=100, show_off=False)
self.elapsed_label = MDLabel(text='0:00', pos_hint={"center_y": 0.5}, size_hint=(None, None))
self.elapsed_label.text_size = (None, None)
self.elapsed_label.height = self.elapsed_label.texture_size[1]
self.remaining_label = MDLabel(text='0:00', pos_hint={"center_y": 0.5}, size_hint=(None, None))
self.remaining_label.text_size = (None, None)
self.remaining_label.height = self.remaining_label.texture_size[1]
self.add_widget(MDIconButton(icon='play', pos_hint={"center_y": 0.5}))
self.add_widget(self.elapsed_label)
self.add_widget(self.progress_bar)
self.add_widget(self.remaining_label)