def add_item(model): item = OneLineAvatarIconListItem( text=model, secondary_text="", on_release=partial(self.set_model, model), ) item.add_widget(LeftCheckbox(active=self.checked_models[model])) self.layout.add_widget(item)
def saved_match_list(self): """Creates a list with all saved games""" self.ids.match_list.clear_widgets() # To avoid duplication of widgets with open('../statspoint_data.json', 'r') as file: data = json.load(file) for match_info in data: # For every match saved in the JSON file self.empty = False result = OneLineAvatarIconListItem(text='{} : {} vs {}'.format( match_info['match_name'], match_info['player1_name'], match_info['player2_name'])) # Add a OneListItem widget (UI) result.bind(on_press=lambda a, i=match_info: self.show_dialog_saves(i, data)) delete_save = DeleteSave( theme_text_color='Custom', text_color=(0.9, 0, 0, 1), icon='close', on_press=lambda x, i=match_info: DeleteSave().show_dialog_delete_save(i)) tennis_icon = IconLeftWidget( icon='tennis', theme_text_color='Custom', text_color=(0.9, 0.36, 0, 1), on_press=lambda a, i=match_info: self.show_dialog_saves(i, data)) result.add_widget(tennis_icon) # Adds a button to delete the match result.add_widget(delete_save) # Gets the information of the match which is chosen by the user self.ids.match_list.add_widget(result) if self.empty: # Writes a message if there is not match saved self.ids.empty_text.text = 'There are no saves! Create a game!' else: self.ids.empty_text.text = '' self.empty = True
def __init__(self, **kwargs): super(inventoryList,self).__init__(**kwargs) self.focus_behavior = True self.bg_color = (1,0,1,0.5) self.height = 58 self._backbutton = OneLineAvatarIconListItem( bg_color = (1,0,1,0.5),on_press = lambda s: Intphone().app.createMe()) # Had to make custom height adjustment formula because of FloatLayout in a MDlist in a ScrollView self.add_widget(self._backbutton) self._backbutton.add_widget(IconRightWidget(icon="file-edit", on_press = lambda q: [self.show_alert_dialog_def(True,self.my_id())],text_color= (.2,.2,.2,1),theme_text_color= "Custom")) # how to add multiple func to >>on_press = lambda x: [self.show_alert_dialog_def(), self.my_id()] self._description1 = MDLabel(text= self._header,markup = True) self._description1.font_size = 18 self._backbutton.add_widget(self._description1,index = -1)
def add_new_product(self, product, qty): result = self.db.set(product, qty) if result: self.products.update({product: qty}) list_item = OneLineAvatarIconListItem(text=product) list_item.ids.qty.text = str(qty) self.root.ids.scroll.add_widget(list_item)
class inventoryList(FloatLayout, FocusBehavior): # CUSTOM WIDGET _header = StringProperty("") # To edit MBlabel _commandlist = StringProperty("") _color_f = ColorProperty([1.0, 1.0, 1.0, 0]) def show_alert_dialog_def(self,x,a): # how to call function outside of a class callme = show_alert_dialog(self,x,a) def on_enter(self,*args):# how to detect mouse over on widget with the FocusBehavior inherit class global last_touch last_touch = self._header #print(self._header) def my_id(self):# Return me1 = self._header print(me1) return me1 def __init__(self, **kwargs): super(inventoryList,self).__init__(**kwargs) self.focus_behavior = True self.bg_color = (1,0,1,0.5) self.height = 58 self._backbutton = OneLineAvatarIconListItem( bg_color = (1,0,1,0.5),on_press = lambda s: Intphone().app.createMe()) # Had to make custom height adjustment formula because of FloatLayout in a MDlist in a ScrollView self.add_widget(self._backbutton) self._backbutton.add_widget(IconRightWidget(icon="file-edit", on_press = lambda q: [self.show_alert_dialog_def(True,self.my_id())],text_color= (.2,.2,.2,1),theme_text_color= "Custom")) # how to add multiple func to >>on_press = lambda x: [self.show_alert_dialog_def(), self.my_id()] self._description1 = MDLabel(text= self._header,markup = True) self._description1.font_size = 18 self._backbutton.add_widget(self._description1,index = -1)
def down_button(self, country, *args): try: self.clear_screen() except: pass self.phone_number_screen_manager.current = 'phone_number_list' numbers = self.pickle_list()[3][country] if len(numbers) == self.NORMAL: names = self.pickle_list()[0] self.container = SecondScreen() self.phone_container.add_widget(self.container) for i in range(self.NORMAL): self.container.add_widget( MDExpansionPanel( icon=f'images/emergency/{names[i]}.png', content=PhoneContent(numbers[i]), panel_cls=MDExpansionPanelOneLine(text=names[i]))) elif len(numbers) == self.EXTENDED: names = self.pickle_list()[1] self.container = SecondScreen() self.phone_container.add_widget(self.container) self.prov_item = OneLineAvatarIconListItem( text='Numery ws. koronawirusa w Województwach', on_release=self.clear_add_provinces) prov_item_icon_left = IconLeftWidget( icon='images/emergency/mask.png', size_hint=(0.9, 0.9)) prov_item_icon_right = IconRightWidget(icon='arrow-right') self.phone_list_container.add_widget(self.prov_item) self.prov_item.add_widget(prov_item_icon_left) self.prov_item.add_widget(prov_item_icon_right) for i in range(self.EXTENDED): self.container.add_widget( MDExpansionPanel( icon=f'images/emergency/{names[i]}.png', content=PhoneContent(numbers[i]), panel_cls=MDExpansionPanelOneLine(text=names[i])))
def make_second_screen(self): self.screen.ids.active_reports.clear_widgets() active_reports = self.app.myfirebase.get_active_reports() if active_reports: for i, report in enumerate(active_reports): to_add = OneLineAvatarIconListItem(text=report) to_add.add_widget(IconLeftWidget(icon='file-edit', on_release=self.edit_report)) to_add.add_widget(MDIconButton(icon="trash-can-outline", pos_hint={'center_x': .8, 'center_y': .5}, on_release=self.remove_report_dialog)) self.screen.ids.active_reports.add_widget(to_add)
def render_products(self): if self.products: for name, qty in self.products.items(): list_item = OneLineAvatarIconListItem(text=name) list_item.ids.qty.text = str(qty) self.root.ids.scroll.add_widget(list_item)
class Show(MDList): app = Zdrowie() NORMAL = 4 EXTENDED = 16 def __init__(self, **kwargs): super(Show, self).__init__(**kwargs) self.numbers = self.pickle_list()[3] self.countries = [] self.container = None self.prov_item = None self.delete_container = None for self.key, self.value in self.numbers.items(): icon = IconLeftWidget(icon=f'images/countries/{self.key}.png', size_hint=(0.9, 0.9)) self.item = CountryOneLineIconListItem(text=str(self.key)) self.add_widget(self.item) self.item.add_widget(icon) def down_button(self, country, *args): try: self.clear_screen() except: pass self.phone_number_screen_manager.current = 'phone_number_list' numbers = self.pickle_list()[3][country] if len(numbers) == self.NORMAL: names = self.pickle_list()[0] self.container = SecondScreen() self.phone_container.add_widget(self.container) for i in range(self.NORMAL): self.container.add_widget( MDExpansionPanel( icon=f'images/emergency/{names[i]}.png', content=PhoneContent(numbers[i]), panel_cls=MDExpansionPanelOneLine(text=names[i]))) elif len(numbers) == self.EXTENDED: names = self.pickle_list()[1] self.container = SecondScreen() self.phone_container.add_widget(self.container) self.prov_item = OneLineAvatarIconListItem( text='Numery ws. koronawirusa w Województwach', on_release=self.clear_add_provinces) prov_item_icon_left = IconLeftWidget( icon='images/emergency/mask.png', size_hint=(0.9, 0.9)) prov_item_icon_right = IconRightWidget(icon='arrow-right') self.phone_list_container.add_widget(self.prov_item) self.prov_item.add_widget(prov_item_icon_left) self.prov_item.add_widget(prov_item_icon_right) for i in range(self.EXTENDED): self.container.add_widget( MDExpansionPanel( icon=f'images/emergency/{names[i]}.png', content=PhoneContent(numbers[i]), panel_cls=MDExpansionPanelOneLine(text=names[i]))) def provinces_list(self, *args): self.phone_number_screen_manager.current = 'phone_provinces' content = self.pickle_list()[4] self.delete_container = MDGridLayout(cols=1, adaptive_height=True) self.phone_provinces.add_widget(self.delete_container) for key, value in content.items(): item = MDExpansionPanel( icon=f'images/provinces/{key}.png', content=ProvinceContent(content[key]), panel_cls=MDExpansionPanelOneLine(text=key)) self.delete_container.add_widget(item) def pickle_list(self): load = [] if self.app.language == 'pl': file = 'countries_data.dat' else: file = 'countries_data_eng.dat' with open(file, 'rb') as file: a = pickle.load(file) load.append(a) b = pickle.load(file) load.append(b) c = pickle.load(file) load.append(c) d = pickle.load(file) load.append(d) e = pickle.load(file) load.append(e) return load def clear_add_provinces(self, *args): self.clear_provinces() self.provinces_list() def clear_screen(self): self.phone_container.remove_widget(self.container) def clear_provinces(self): try: self.phone_list_container.remove_widget(self.prov_item) except: pass try: self.phone_provinces.remove_widget(self.delete_container) except: pass
def build(self): app = MDApp.get_running_app() app.theme_cls = ThemeManager() app.theme_cls.primary_palette = "DeepPurple" app.theme_cls.accent_palette = "DeepPurple" app.theme_cls.theme_style = "Light" Window.borderless = False self.title = "Super Chat" Config.set('kivy', 'window_title', 'Super Chat') self.root_sm = ScreenManager() rscreen = Screen(name="Root") self.nav_layout = NavigationLayout() self.nl_sm = ScreenManager() nl_screen = Screen(name="nl") self.toolbar = MDToolbar(pos_hint={'top': 1}, elevation=9, title=chat_app.title, md_bg_color=chat_app.theme_cls.primary_color) self.toolbar.left_action_items = [ ["menu", lambda x: self.nav_drawer.toggle_nav_drawer()]] nl_screen.add_widget(self.toolbar) self.screen_manager = ScreenManager() self.connect_page = ConnectPage() screen = Screen(name="Connect") screen.add_widget(self.connect_page) self.screen_manager.add_widget(screen) self.info_page = InfoPage() screen = Screen(name="Info") screen.add_widget(self.info_page) self.screen_manager.add_widget(screen) nl_screen.add_widget(self.screen_manager) self.nl_sm.add_widget(nl_screen) self.nav_drawer = MDNavigationDrawer(elevation=0) self.ndbox = BoxLayout(orientation="vertical", spacing="8dp") self.avatar = Image(id="avatar", size_hint=(None, None), size=( Window.size[0]*0.65, Window.size[0]*0.55), source="icon.png") self.anchor = AnchorLayout( anchor_x="center", size_hint_y=None, height=self.avatar.height*1.3) self.anchor.add_widget(MDLabel()) self.anchor.add_widget(self.avatar) self.ndbox.add_widget(self.anchor) self.fl = FloatLayout() self.fl.padding = 8 self.sub_nav = OneLineAvatarIconListItem(text="Settings", theme_text_color="Primary", pos_hint={ 'center_x': 0.5, 'center_y': 1}, font_style="Button") self.iconitem = IconLeftWidget(icon="settings", pos_hint={ 'center_x': 1, 'center_y': 0.55}) self.sub_nav.add_widget(self.iconitem) self.fl.add_widget(self.sub_nav) self.settings_btn = OneLineAvatarIconListItem( text="Dark Mode", on_press=self.theme_change,on_release=lambda x: self.nav_drawer.toggle_nav_drawer(), pos_hint={'center_x': 0.5, 'center_y': 0.86}) self.iconitem = IconLeftWidget( icon="theme-light-dark", pos_hint={'center_x': 1, 'center_y': 0.55}) self.settings_btn.add_widget(self.iconitem) self.fl.add_widget(self.settings_btn) self.ndbox.add_widget(self.fl) self.toolbar = MDToolbar( elevation=8, title=chat_app.title, md_bg_color=chat_app.theme_cls.primary_color) self.toolbar.left_action_items = [ ["close", sys.exit]] self.ndbox.add_widget(self.toolbar) self.nav_drawer.add_widget(self.ndbox) self.nav_layout.add_widget(self.nl_sm) self.nav_layout.add_widget(self.nav_drawer) rscreen.add_widget(self.nav_layout) self.root_sm.add_widget(rscreen) return self.root_sm