In an MDBoxLayout
, I am attempting to align 4 widgets.
Here is my code for the layout:
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'
And here is the result:
As you can see, the MDIconButton
is not aligned with the rest of the widgets, and the first MDLabel is slightly higher than the rest of the widgets. Any help to align these widgets would be greatly appreciated!
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)