def __init__(self, text, font_size=FONT_MEDIUM, *args, **kwargs): super(MonsterTab, self).__init__(font_size=font_size, *args, **kwargs) self.text = text # Non player monsters content = BoxLayout(orientation='vertical') self.add_widget(content) # Monster sheets self.monster_sheets = TabbedPanel(do_default_tab=False, tab_width=150, tab_height=100) def add_monster(button): popup = AddMonsterPopup(self) popup.open() buttons = BoxLayout(orientation='horizontal', size_hint=(1, .1)) new_monster = Button(text='+', on_press=add_monster) refresh = Button(text='refresh', on_press=lambda x: self.load_monsters()) buttons.add_widget(new_monster) buttons.add_widget(refresh) content.add_widget(buttons) content.add_widget(self.monster_sheets) self.load_monsters()
def __init__(self): App.__init__(self) self.data = HymnData() self.title = "Old-Line Primitive Baptist Hymn and Tune Book" self.panel = TabbedPanel() self.number_tab = TabbedPanelItem(text="By number") self.panel.add_widget(self.number_tab) self.set_up_number_tab() self.panel.default_tab = self.number_tab self.first_line_tab = TabbedPanelItem(text="By first line") self.panel.add_widget(self.first_line_tab) self.set_up_first_line_tab() self.search_tab = TabbedPanelItem(text="Search") self.panel.add_widget(self.search_tab) self.set_up_search_tab() self.about_tab = TabbedPanelItem(text="About") self.panel.add_widget(self.about_tab) self.set_up_about_tab()
class CharcterTab(TabbedPanelItem): def __init__(self, text, font_size=FONT_MEDIUM, *args, **kwargs): super(CharcterTab, self).__init__(font_size=font_size, *args, **kwargs) self.text = text # Non player characters content = BoxLayout(orientation='vertical') self.add_widget(content) # Character sheets self.character_sheets = TabbedPanel(do_default_tab=False, tab_width=200, tab_height=100) content.add_widget(self.character_sheets) # self.character_sheets.add_widget(CharacterActionsTab(self)) def load_characters(self, cls): for character in session.query(cls).all(): self.add_character(character) def add_character(self, character): character = session.merge(character) session.commit() self.character_sheets.add_widget(CharacterSheet(character)) def new_character(self, name): self.add_character(Character(name=name))
def build(self): # App is built as a tabbed panel with three tabs: # Navigation, Status, and Media. These allow quick # access to the things you actually want to do in # a car without excessive UI navigation. tp = TabbedPanel() tp.do_default_tab = False tp.tab_pos = 'bottom_mid' tp.tab_width = Window.width / 3 nav = TabbedPanelHeader(text='Nav') status = TabbedPanelHeader(text='Status') media = TabbedPanelHeader(text='Media') tp.add_widget(nav) tp.add_widget(status) tp.add_widget(media) #nav.content = Label(text = 'Nav system goes here') #status.content = Label(text = 'Performance, health, and eco stats go here') #media.content = Label(text = 'Media player goes here') # Each tab's content is implemented in a tab above. nav.content = KVMaps() status.content = Performance() media.content = MusicPlayer() return tp
class ScoresPopupContent(BoxLayout): """Element `content` dla obiektu Popup""" close_bt = ObjectProperty(None) tab_area = ObjectProperty(None) def __init__(self, table_name, **kwargs): Builder.load_file("kv/stats.kv") BoxLayout.__init__(self, **kwargs) self.orientation = "vertical" # Zbudowanie obszaru zakładek self.level1 = LevelTab(nr=1, table=table_name) self.level2 = LevelTab(nr=2, table=table_name) self.level3 = LevelTab(nr=3, table=table_name) self.tab_area = TabbedPanel(default_tab=self.level1, do_default_tab=False, tab_pos="top_mid", tab_height=50, tab_width=Window.width * 0.8 // 3 - 10) self.tab_area.add_widget(self.level1) self.tab_area.add_widget(self.level2) self.tab_area.add_widget(self.level3) self.close_bt = Button(text="Zamknij", size_hint_y=0.1) self.add_widget(self.tab_area) self.add_widget(self.close_bt)
def build(self) -> 'kivy.uix.tabbedpanel.TabbedPanel': self.tp = TabbedPanel() self.tp.tab_width = 500 #Default tab: Main Controller self.tp.default_tab_text = "Main Controller Page" self.tp.default_tab_content = ControllerView() self.tp.default_tab.background_normal = 'images/strong_blue.png' self.tp.default_tab.background_down = 'images/lime_green.png' #Drone Control self.th_drone_adv_control = TabbedPanelHeader(text='Drone Control') self.th_drone_adv_control.content= DroneView() self.th_drone_adv_control.background_normal = 'images/strong_blue.png' self.th_drone_adv_control.background_down = 'images/lime_green.png' #Drone Control self.th_drone_control = TabbedPanelHeader(text='DIPS and Mapping') self.th_drone_control.content= DroneAdvView() self.th_drone_control.background_normal = 'images/strong_blue.png' self.th_drone_control.background_down = 'images/lime_green.png' #Documentation self.th_doc = TabbedPanelHeader(text='Documentation') self.th_doc.content= DocView() self.th_doc.background_normal = 'images/strong_blue.png' self.th_doc.background_down = 'images/lime_green.png' self.tp.add_widget(self.tp.default_tab) self.tp.add_widget(self.th_drone_adv_control) self.tp.add_widget(self.th_drone_control) self.tp.add_widget(self.th_doc) return self.tp
def __init__(self, **kwargs): super(DataScreen, self).__init__(**kwargs) tab = TabbedPanel() self.th_chart_head = TabbedPanelHeader(text='Chart') tab.default_tab_text = 'Table' self.list_adapter = ListAdapter(data=[], args_converter=self.argsc, cls=TableItemView, selection_mode='single', allow_empty_selection=True) self.list_adapter.bind(on_selection_change=self.selection_changed) list_view = ListView(adapter=self.list_adapter) self.th_chart_head.content = GraphView() tab.default_tab_content = TableView(list_view) tab.add_widget(self.th_chart_head) button = Button(text='Add',size_hint_y=None,height=dp(50)) button.bind(on_release=self.addItem) layout = BoxLayout(orientation='vertical') layout.add_widget(tab) layout.add_widget(button) self.add_widget(layout)
def __init__(self, **kwargs): super().__init__(**kwargs) self.tp_main = TabbedPanel() ti_pandas = TabbedPanelItem(id="ti_pandas", text = "pandas" ) ti_list = TabbedPanelItem(id="ti_list", text = "list") ti_numpy = TabbedPanelItem(id="ti_numpy", text = "numpy array") self.qt_pandas = QzTable(id="qt_pandas") self.qt_list = QzTable(id="qt_list") self.qt_array = QzTable(id="qt_array") self.df_data = pd.read_csv("height_weight.csv") self.l_data = list() v = 10.0 for y in range(1,1000,1): row = list() for x in range(0,50,1): v= v+ 10 row.append(v) self.l_data.append(row) self.a_data = np.array(self.l_data) self.qt_pandas.data = self.df_data self.qt_list.data = self.l_data self.qt_array.data = self.a_data #Layout self.add_widget(self.tp_main) self.tp_main.add_widget(ti_pandas) ti_pandas.add_widget(self.qt_pandas) self.tp_main.add_widget(ti_list) ti_list.add_widget(self.qt_list) self.tp_main.add_widget(ti_numpy) ti_numpy.add_widget(self.qt_array)
class CelticKnotwork(App): '''Main tabbed interface, each tab contains its own instance of CelticKnotwork2''' def build(self): ##Instance Variables self.showDots = True self.showGrid = True self.showBreaklines = True self.showSkeleton = True self.showKnot = True self.knotX = 4 self.knotY = 4 self.knotWidth = 8 self.knotWidthView = 8 self.gridUnits = 50 self.gridUnitsView = 50 self.offsetX = 150 self.offsetY = 50 self.totTabs = 1 self.tabNo = 1 ##Main Layout self.layout_main = AnchorLayout(anchor_x = "left", anchor_y="top") self.layout_tabs= FloatLayout(size=(Window.width, Window.height), size_hint=(0.1, 0.08)) ##Top Tab Bar - allowing multiple knots self.tp = TabbedPanel() self.tp.default_tab_text = "Knot 1" self.layout_main.add_widget(self.tp) self.addTab = TabbedPanelHeader(text='+') self.addTab.bind(on_release = self.onPressAddTab) self.addTab = Button(text='+', pos =(Window.width*.9,Window.height*.92)) self.addTab.bind(on_press = self.onPressAddTab) self.tp.default_tab_content = CelticKnotwork2().build() #get tab content from CelticKnotwork2 self.layout_tabs.add_widget(self.addTab) self.layout_main.add_widget(self.layout_tabs) Window.bind(on_resize=self.on_resize) return self.layout_main def onPressAddTab(self, instance): '''Add a tab when "+" button pressed''' self.totTabs += 1 self.tabNo = self.totTabs self.th = TabbedPanelHeader(text='Knot '+str(self.totTabs)) self.th.content = CelticKnotwork2().build() self.tp.add_widget(self.th) self.tp.switch_to(self.th) def on_resize(self, window, height, somethingesle): '''Handles window resize''' self.layout_main.remove_widget(self.layout_tabs) self.layout_tabs= FloatLayout(size=(Window.width, Window.height), size_hint=(0.1, 0.05)) self.addTab = Button(text='+', pos =(Window.width*.9,Window.height*.95)) self.addTab.bind(on_press = self.onPressAddTab) self.layout_tabs.add_widget(self.addTab) self.layout_main.add_widget(self.layout_tabs)
def tab_info(self): self.pbuilder = self.parent.parent self.description_tab = TabbedPanel() particle_info = TabbedPanelHeader(text = 'Particle') behavior_info = TabbedPanelHeader(text = 'Behavior') color_info = TabbedPanelHeader(text = 'Color') particle_info.font_size = self.size[0]*.28 behavior_info.font_size = self.size[0]*.28 color_info.font_size = self.size[0]*.28 particle_info.content = RstDocument(source="param_descriptions/ParticleTab.rst") behavior_info.content = RstDocument(source="param_descriptions/BehaviorTab.rst") color_info.content = RstDocument(source="param_descriptions/ColorTab.rst") particle_info.scroll_distance = 2 particle_info.scroll_timeout = 500 behavior_info.scroll_distance = 2 behavior_info.scroll_timeout = 500 color_info.scroll_distance = 2 color_info.scroll_timeout = 500 self.description_tab.default_tab = particle_info self.description_tab.tab_width = self.size[0]*4.36 self.description_tab.tab_height = self.size[1]*.7 self.description_tab.add_widget(particle_info) self.description_tab.add_widget(behavior_info) self.description_tab.add_widget(color_info) self.description_popup = Popup(title="Variable Descriptions", content = self.description_tab, size_hint = (.8,.8), on_open=self._popup_opened, on_dismiss=self._popup_dismissed) self.description_popup.open()
def button_options(self): print("options pressed") app = App.get_running_app() cont = GridLayout(cols=1) # retrieve audio outputs / soundcards from audioengine class out_list = app.root.ae.get_outputs() print(out_list) # combine out_list, add to output selector for x, y in zip(*out_list): # intentional error to remember where left off b = Button(id="{}".format(y), text="{} {}".format(x, y)) b.bind(on_press=self.audio_opts_button_callback) cont.add_widget(b) for x in self.children: print(x) tp = TabbedPanel(do_default_tab=False) # audio tab th_audio = TabbedPanelItem(text="Audio") th_audio.content = GridLayout() th_audio.add_widget(cont) # files tab th_files = TabbedPanelItem(text="Files") th_files.add_widget(Button(text="files tab content")) tp.add_widget(th_audio) tp.add_widget(th_files) popup = Popup(title='Options', content=tp, size_hint=(None, None), size=(800, 800)) popup.open()
class VariableDescriptions(Widget): def tab_info(self): self.pbuilder = self.parent.parent self.description_tab = TabbedPanel() particle_info = TabbedPanelHeader(text = 'Particle') behavior_info = TabbedPanelHeader(text = 'Behavior') color_info = TabbedPanelHeader(text = 'Color') particle_info.font_size = self.size[0]*.28 behavior_info.font_size = self.size[0]*.28 color_info.font_size = self.size[0]*.28 particle_info.content = RstDocument(source="param_descriptions/ParticleTab.rst") behavior_info.content = RstDocument(source="param_descriptions/BehaviorTab.rst") color_info.content = RstDocument(source="param_descriptions/ColorTab.rst") particle_info.scroll_distance = 2 particle_info.scroll_timeout = 500 behavior_info.scroll_distance = 2 behavior_info.scroll_timeout = 500 color_info.scroll_distance = 2 color_info.scroll_timeout = 500 self.description_tab.default_tab = particle_info self.description_tab.tab_width = self.size[0]*4.36 self.description_tab.tab_height = self.size[1]*.7 self.description_tab.add_widget(particle_info) self.description_tab.add_widget(behavior_info) self.description_tab.add_widget(color_info) self.description_popup = Popup(title="Variable Descriptions", content = self.description_tab, size_hint = (.8,.8), on_open=self._popup_opened, on_dismiss=self._popup_dismissed) self.description_popup.open() def _popup_opened(self, instance): self.pbuilder.demo_particle.pause() def _popup_dismissed(self, instance): self.pbuilder.demo_particle.resume()
def main_base_menu(build_place): scatter = ScatterLayout() menu = building.MenuLayout() inside_menu = building.InsideMenuLayout() main_box = BoxLayout(orientation='horizontal') left_box = BoxLayout(orientation='vertical', size_hint_x=.35) right_box = BoxLayout(size_hint_x=.65) icon_bottom_box = BoxLayout(size_hint=(.9, .8)) icon_layout = BoxLayout(size_hint_y=.4) # pos_hint=({'top': 1}) # Вывод производства ресурсов stat_res = res_generation('main_base') # Добавление вкладок Здания tb = TabbedPanel(do_default_tab=False, tab_width=130) base_e = TabbedPanelItem(text='Энергия') base_e.content = base_energy() base_f = TabbedPanelItem(text='Пища') base_f.content = base_food() tb.add_widget(base_e) tb.add_widget(base_f) icon_bottom_box.add_widget(stat_res) icon_layout.add_widget(Image(source='data/images/buildings/main-base.png')) left_box.add_widget(icon_layout) left_box.add_widget(icon_bottom_box) right_box.add_widget(tb) main_box.add_widget(left_box) main_box.add_widget(right_box) inside_menu.add_widget(main_box) close_b = building.CloseMenuButton(build_place, scatter) menu.add_widget(inside_menu) menu.add_widget(close_b) scatter.add_widget(menu) return scatter
def __init__(self): TabbedPanel.__init__(self) self.device=hid.device() self.device.open(6000,65280) #MSI keyboard self.region_colors=[1,4,6] self.region_intensity=[1,1,1]
def __init__(self): TabbedPanel.__init__(self) self.device = hid.device() self.device.open(6000, 65280) #MSI keyboard self.region_colors = [1, 4, 6] self.region_intensity = [1, 1, 1]
def build(self): tb_panel= TabbedPanel() tb_panel.background_image ="fundal2.jpg" tb_panel.default_tab_text = "tab-ul default" tb_panel.default_tab_content = Image(source='infoacademy3.gif',pos=(200, 100), size=(200, 200)) th_text_head = TabbedPanelHeader(text='Text tab') th_text_head.content= Label(text='Infoacademy', font_size = 40) th_img_head= TabbedPanelHeader(text='Image tab') th_img_head.content= Image(source='infoacademy4.gif',pos=(400, 100), size=(400, 400)) th_btn_head = TabbedPanelHeader(text='Button tab') layout= GridLayout(cols=1) eticheta=Label(text='tab-ul cu buton', font_size = 40) buton=Button(text='Acesta este un buton',font_size=20) layout.add_widget(eticheta) layout.add_widget(buton) th_btn_head.content= layout th_btn_head.content.padding = 200 tb_panel.add_widget(th_text_head) tb_panel.add_widget(th_img_head) tb_panel.add_widget(th_btn_head) return tb_panel
def build(self): tb_panel = TabbedPanel(tab_width=Window.size[0] / 4) screen_layout = BoxLayout(padding=10, orientation="horizontal", size_hint=(.7, 1)) tb_panel.default_tab_text = 'Login' #Create text tab th_text_head = TabbedPanelHeader(id='one', text='Screen1') th_text_head.content = test1().test() #tb_panel.Screen1_tab_content = self.test() #Create image tab th_img_head = TabbedPanelHeader(text='Screen2') th_img_head.content = Image(source='sample.jpg', pos=(400, 100), size=(400, 400)) #Create button tab th_btn_head = TabbedPanelHeader(text='Screen3') th_btn_head.content = Button(text='This is my button', font_size=20, size_hint_x=0.5, size_hint_y=0.5) th_text2_head = TabbedPanelHeader(text='Screen4') th_text2_head.content = Label(text='This is my text content') tb_panel.add_widget(th_text_head) tb_panel.add_widget(th_img_head) tb_panel.add_widget(th_btn_head) tb_panel.add_widget(th_text2_head) return tb_panel
class CharacterRulesScreen(Screen): """Screen with TabbedPanel for all the character-rulebooks""" engine = ObjectProperty() character = ObjectProperty() toggle = ObjectProperty() def _get_rulebook(self, rb): return { 'character': self.character.rulebook, 'avatar': self.character.avatar.rulebook, 'character_thing': self.character.thing.rulebook, 'character_place': self.character.place.rulebook, 'character_portal': self.character.portal.rulebook }[rb] def finalize(self, *args): assert not hasattr(self, '_finalized') if not ( self.engine and self.toggle and self.character ): Clock.schedule_once(self.finalize, 0) return self._tabs = TabbedPanel(do_default_tab=False) for rb, txt in ( ('character', 'character'), ('avatar', 'avatar'), ('character_thing', 'thing'), ('character_place', 'place'), ('character_portal', 'portal') ): tab = TabbedPanelItem(text=txt) setattr(self, '_{}_tab'.format(rb), tab) box = RulesBox( engine=self.engine, rulebook=self._get_rulebook(rb), entity=self.character, toggle=self.toggle ) tab.add_widget(box) self._tabs.add_widget(tab) self.add_widget(self._tabs) self._finalized = True def on_character(self, *args): if not hasattr(self, '_finalized'): self.finalize() return for rb in ( 'character', 'avatar', 'character_thing', 'character_place', 'character_portal' ): tab = getattr(self, '_{}_tab'.format(rb)) tab.content.entity = self.character tab.content.rulebook = self._get_rulebook(rb)
def build(self): root = TabbedPanel(do_default_tab=False) tab32 = TabbedPanelHeader(text="Binary 32") tab64 = TabbedPanelHeader(text="Binary 64") tab32.content = IEEE754Converter(number_of_bits=32) tab64.content = IEEE754Converter(number_of_bits=64) root.add_widget(tab32) root.add_widget(tab64) return root
class HomeScreen(BoxLayout): """Home screen will have tabs at top and status at bottom""" def __init__(self, **kwargs): """Initialize the class""" super(HomeScreen, self).__init__(**kwargs) self.orientation = 'vertical' self.status_layout = StatusLayout(size_hint=(1, .1)) self.tabs = TabbedPanel() app = App.get_running_app() app.tabs = self.tabs settings_header = TabbedPanelHeader(text='Assistant\nSettings') settings_header.content = AppSettings(status_layout=self.status_layout) self.tabs.add_widget(settings_header) self.tabs.default_tab = settings_header tab_settings_header = TabbedPanelHeader(text='Tablet\nSettings') tab_settings_header.content = TabletSettings( status_layout=self.status_layout) self.tabs.add_widget(tab_settings_header) templates_header = TabbedPanelHeader(text='Templates') templates_header.content = Templates() self.tabs.add_widget(templates_header) splash_header = TabbedPanelHeader(text='Splash\nScreens') splash_header.content = Splash() self.tabs.add_widget(splash_header) my_files_header = TabbedPanelHeader(text='My Files') my_files_header.content = MyFiles() # self.tabs.add_widget(my_files_header) friendly_files_header = TabbedPanelHeader(text='My Files') friendly_files_header.content = FriendlyMyFiles() self.tabs.add_widget(friendly_files_header) self.app_controller = AppController( settings_header.content.config_layout, tab_settings_header.content.config_layout, self.status_layout, my_files_header.content, friendly_files_header.content, ) self.add_widget(self.tabs) self.buttons = ButtonRowLayout(self.app_controller, size_hint=(1, .1)) self.add_widget(self.buttons) self.add_widget(self.status_layout)
def results_panel_fill(self): # remove previous results from results grid self.results_grid.clear_widgets() self.results_panel = TabbedPanel(do_default_tab=False) # loop through categories in current results for category in self.results.categories.keys(): category_tab = TabbedPanelHeader(text=category) # add grid to a scrollview widget items_scrollview = ScrollView(size_hint=(1, None), size=(Window.width, Window.height * 0.55)) # create grid that is scrollable items_grid = GridLayout(cols=3, size_hint=(1, None), size=(Window.width, Window.height * 0.55)) items_grid.bind(minimum_height=items_grid.setter('height')) new_items_field = TextInput(hint_text="'Seperate multiple items with commas'") add_item_btn = Button(text='Add\nitems', size_hint=(del_col, None), on_press=partial(self.add_new_cat_item_callback, input=new_items_field, category=category)) add_widgets(items_grid, (new_items_field, add_item_btn)) # disable add new item button on search box when add item btn in results box is added # self.add_item_btn.disabled = True # loop through items in category items = self.results.categories[category].items.items() for (item_name, item_obj) in items: # create item label, edit button, and del button delete_btn = ToggleButton(text="X", size_hint=(del_col, None), on_press=partial(self.delete_item_callback, item=item_name, category=category)) edit_btn = Button(text=item_name, size_hint=(item_col, None), on_press=partial(self.edit_item_callback, category=category, item=item_name)) edit_btn.text_size=edit_btn.size # edit_btn.text_size = edit_btn.size add_widgets(items_grid, (edit_btn, delete_btn)) # create a textbox for adding new items' items_scrollview.add_widget(items_grid) category_tab.content = items_scrollview self.results_panel.add_widget(category_tab) # add panel to results grid self.results_grid.add_widget(self.results_panel)
def build(self): sekmeli_panel = TabbedPanel() sekmeli_panel.default_tab.text="İlk Sekme" sekmeli_panel.default_tab.content=Label(text="Sekmeli Panel'in İlk sayfası") for i, isim in enumerate(('Dilek', 'Fatih', 'Melike')): sekme=TabbedPanelHeader(text='Sekme %d' % (i+1)) sekme.content=Label(text="Bu sekmenin sahibi: %s" % isim) sekmeli_panel.add_widget(sekme) return sekmeli_panel
def build(self): tb_panel= TabbedPanel(tab_width=Window.size[0]/4) screen_layout = BoxLayout(padding=10, orientation="horizontal", size_hint=(.7, 1)) tb_panel.default_tab_text = 'Login' #Create text tab th_text_head = TabbedPanelHeader(id='one',text='Screen1') th_text_head.content = test1().test() #tb_panel.Screen1_tab_content = self.test() #Create image tab th_img_head= TabbedPanelHeader(text='Screen2') th_img_head.content= Image(source='sample.jpg',pos=(400, 100), size=(400, 400)) #Create button tab th_btn_head = TabbedPanelHeader(text='Screen3') th_btn_head.content= Button(text='This is my button',font_size=20, size_hint_x=0.5, size_hint_y=0.5) th_text2_head = TabbedPanelHeader(text='Screen4') th_text2_head.content= Label(text='This is my text content') tb_panel.add_widget(th_text_head) tb_panel.add_widget(th_img_head) tb_panel.add_widget(th_btn_head) tb_panel.add_widget(th_text2_head) return tb_panel
def create_tabbed_menu(self): tabbed_menu = TabbedPanel(size_hint=(None, 1), size=(200, 0), pos_hint={ 'left': 1, 'top': 1 }, do_default_tab=False, border=(0, 0, 0, 0), tab_pos='top_mid', tab_width=200) # Color panel with tabbed_menu.canvas.before: tabbed_menu.rect = Image(source=BKGD_DCHRC, allow_stretch=True, keep_ratio=False, size_hint=(1, 1)) tabbed_menu.bind(pos=self.update_rect, size=self.update_rect) tabbed_menu.preset_tab = HoverTab(text='Presets', background_normal=TAB_DCHRC[0], background_down=TAB_DCHRC[1]) tabbed_menu.add_widget(tabbed_menu.preset_tab) self.panel_layout.add_widget(tabbed_menu) return tabbed_menu
def __init__(self, **kwargs): super(ButtonApp, self).__init__(**kwargs) tmp_btn = HoverButton(text='BUTTON 1', size_hint=(None, None), size=(200, 60), color=(0, 1, 0, 1), font_size=dp(20), on_press=self.do_sum) tmp_btn2 = HoverButton(text='BUTTON 2', size_hint=(None, None), pos=(50, 100), size=(200, 60), color=(0, 1, 0, 1), font_size=dp(30), on_press=self.do_sum_2) self.fl = FloatLayout() self.bl = BoxLayout() self.bl.add_widget(tmp_btn) self.bl.add_widget(tmp_btn2) tabs = TabbedPanel() tabs.do_default_tab = False tab1 = HoverTabs(text='TAB 1') tab3 = HoverTabs(text='TAB 2', on_press=self.tab2_func) tab4 = HoverTabs(text='TAB 3') tab3.add_widget(self.bl) tabs.add_widget(tab1) tabs.add_widget(tab3) tabs.add_widget(tab4) tabs.default_tab = tab1 self.fl.add_widget(tabs)
def __init__(self, text, font_size=FONT_MEDIUM, *args, **kwargs): super(CharcterTab, self).__init__(font_size=font_size, *args, **kwargs) self.text = text # Non player characters content = BoxLayout(orientation='vertical') self.add_widget(content) # Character sheets self.character_sheets = TabbedPanel(do_default_tab=False, tab_width=200, tab_height=100) content.add_widget(self.character_sheets)
def __init__(self, monster, font_size=FONT_MEDIUM, *args, **kwargs): super(MonsterSheet, self).__init__(font_size=font_size, *args, **kwargs) self.monster = monster self.text = monster.name details = TabbedPanel(do_default_tab=False, tab_width=350, tab_height=80) details.add_widget(StatTab(monster)) self.add_widget(details)
def __init__(self, queue, runs_len, **kwargs): super(MainGrid, self).__init__(**kwargs) self.queue = queue self.runs_len = runs_len self.cores = [] self.tabs = [] self.cols = 1 self.tabbedPanel = TabbedPanel() self.tabbedPanel.do_default_tab = False self.add_widget(self.tabbedPanel) Clock.schedule_interval(self.update_info, 0.1)
def __init__(self, **kwargs): self.p = PyAudio() self.rows = 1 self.cols = 1 GridLayout.__init__(self, **kwargs) self.mainPanel = TabbedPanel() print "WIDTH", self.width self.mainPanel.default_tab_text = "AF Output Devices" self.add_widget(self.mainPanel) self.inputPanel = TabbedPanelHeader(text="AF Input Devices") self.inputPanel.content = AfInputManager() self.mainPanel.add_widget(self.inputPanel) self.mainPanel.tab_width = 200
def build(self): tp = TabbedPanel(do_default_tab=False) overviewTab = TabbedPanelHeader(text='Overview') gameTab = TabbedPanelHeader(text='Game') imageTab = TabbedPanelHeader(text='Images') soundTab = TabbedPanelHeader(text='Sounds') tp.add_widget(overviewTab) overviewTab.content = overviewContent() c = gameContent() if c: tp.add_widget(gameTab) gameTab.content = c c = picturesContent() if c: tp.add_widget(imageTab) scroll = ScrollView(size_hint=(1, None), size=(tp.width, Window.height - tp.height), bar_width=10, scroll_type=['bars', 'content']) scroll.add_widget(c) imageTab.content = scroll c = soundsContent() if c: tp.add_widget(soundTab) scroll = ScrollView(size_hint=(1, None), size=(tp.width, Window.height - tp.height), bar_width=10, scroll_type=['bars', 'content']) scroll.add_widget(c) soundTab.content = scroll #layout.bind(size=self._update_rect, pos=self._update_rect) #addScreenInfo(tree, screen) #addPictures(tree, pictures) #addSounds(tree, sounds) #addExecutables(tree, executables) #root = ScrollView(size_hint=(1, None), size=(Window.width, Window.height), bar_width=10, scroll_type=['bars', 'content']) #root.add_widget(tree) #gameTab.add_widget(root) return tp
def finalize(self, *args): assert not hasattr(self, '_finalized') if not ( self.engine and self.toggle and self.character ): Clock.schedule_once(self.finalize, 0) return self._tabs = TabbedPanel(do_default_tab=False) for rb, txt in ( ('character', 'character'), ('avatar', 'avatar'), ('character_thing', 'thing'), ('character_place', 'place'), ('character_portal', 'portal') ): tab = TabbedPanelItem(text=txt) setattr(self, '_{}_tab'.format(rb), tab) box = RulesBox( engine=self.engine, rulebook=self._get_rulebook(rb), entity=self.character, toggle=self.toggle ) tab.add_widget(box) self._tabs.add_widget(tab) self.add_widget(self._tabs) self._finalized = True
def build(self): root = BoxLayout() root = TabbedPanel(do_default_tab=False) root.tab_width = 200 self.load("default.xml") self.wips_container = WipContainer(self, self.wips, orientation="vertical", size_hint_y=None, height=1200, minimum_height=200) queue_scroll = ScrollView(bar_width=20) queue_scroll.add_widget(self.wips_container) tab = TabbedPanelItem(text="queue") tab.add_widget(queue_scroll) root.add_widget(tab) tab = TabbedPanelItem(text="settings") self.setting_container = SettingContainer(self) tab.add_widget(self.setting_container) self.setting_container.update_widgets() root.add_widget(tab) self.check_for_projects() self.load_xml_files() Clock.schedule_interval(lambda x: self.check_for_projects(), 10) return root
def generate_GUI(menus): app_gui = TabbedPanel() app_gui.clear_tabs() app_gui.orientation = "vertical" app_gui.do_default_tab = False app_gui.tab_width = 150 for menu_key, sub_menu in menus.items(): main_menu = TabbedPanelHeader(text=menu_key) scroll_pane = ScrollView() scroll_pane.scroll_type = ['bars', 'content'] scroll_pane.bar_pos_y = 'left' scroll_pane.bar_width = 6 scroll_pane.do_scroll_y = True scroll_pane.do_scroll_x = False scroll_pane.scroll_y = 1 menu_grid = GridLayout(cols=1, spacing=2, size_hint_y=None) menu_grid.orientation = "vertical" menu_grid.padding = 10 menu_grid.row_default_height = 1 menu_height = 0 print(">>>" + menu_key) for sub_menu_key, items in sub_menu.items(): menu_grid.add_widget( Label(text=" " + sub_menu_key, size_hint=(None, None), font_size=14, halign="left", valign="middle")) print("\t" + sub_menu_key) for option in items: if "Name" in option: print("\t\t" + option["Name"]) btn = Button(text=option["Name"], size_hint=(0.1, None), background_color=(0.2, 1, 1, 0.8)) btn.bind(on_press=lambda x: webbrowser.open(option["URL"])) else: print("\t\t" + "<EMPTY>") btn = Button(text="<EMPTY>", size_hint=(0.1, None), background_color=(0.2, 1, 1, 0.8)) btn.bind(on_press=lambda x: webbrowser.open(option["URL"])) btn.width = 250 btn.height = 50 menu_grid.add_widget(btn) menu_height += 80 menu_height += 51 menu_grid.height = menu_height scroll_pane.add_widget(menu_grid) main_menu.content = scroll_pane main_menu.orientation = "vertical" # Adding headers to main layout app_gui.add_widget(main_menu) return app_gui
def build(self): self.availablePorts = listSerialPorts() if len(self.availablePorts) == 0: self.availablePorts.append("----") tabbedPannel = TabbedPanel(do_default_tab=False) # Connection Tab self.connectionTab = TabbedPanelItem(text="Connection") self.layout1 = BoxLayout(orientation='vertical', spacing=10, padding=(200, 200)) self.connectionTab.add_widget(self.layout1) self.lblSerialSettings = Label(text="Connection settings") self.layout1.add_widget(self.lblSerialSettings) self.dlBaudrate = Spinner(values = ["57600", "115200", "230400", "460800", "921600"], text = "115200") self.layout1.add_widget(self.dlBaudrate) self.dlPort = Spinner(values = self.availablePorts, text = self.availablePorts[0]) self.layout1.add_widget(self.dlPort) self.btnConnect = Switch() self.btnConnect.bind(active = self.connect) self.layout1.add_widget(self.btnConnect) # Graph tab self.graphTab = TabbedPanelItem(text = "Graph") # self.layout2 = BoxLayout(orientation='vertical', spacing=10, padding=(200, 200)) # self.graphTab.add_widget(self.layout2) graph = Graph(xlabel='X', ylabel='Y', x_ticks_minor=5, x_ticks_major=25, y_ticks_major=1, y_grid_label=True, x_grid_label=True, padding=5, x_grid=True, y_grid=True, xmin=-0, xmax=100, ymin=-1, ymax=1) plot = MeshLinePlot(color=[1, 1, 0, 1]) plot.points = [(x, sin(x / 10.)) for x in range(0, 101)] graph.add_plot(plot) self.graphTab.add_widget(graph) tabbedPannel.add_widget(self.connectionTab) tabbedPannel.add_widget(self.graphTab) return tabbedPannel
def __init__(self, **kwargs): super().__init__(**kwargs) self.tp_main = TabbedPanel() ti_pandas = TabbedPanelItem(id="ti_pandas", text="pandas") ti_list = TabbedPanelItem(id="ti_list", text="list") ti_numpy = TabbedPanelItem(id="ti_numpy", text="numpy array") self.qt_pandas = QzTable(id="qt_pandas") self.qt_list = QzTable(id="qt_list") self.qt_array = QzTable(id="qt_array") self.df_data = pd.read_csv("height_weight.csv") self.l_data = list() v = 10.0 for y in range(1, 1000, 1): row = list() for x in range(0, 50, 1): v = v + 10 row.append(v) self.l_data.append(row) self.a_data = np.array(self.l_data) self.qt_pandas.data = self.df_data self.qt_pandas.row_header_width = 300 self.qt_list.data = self.l_data self.qt_array.data = self.a_data #setup the pandas widgets spinner = qzw.CellSpinner(values=('1', '2')) spinner.background_color = (0.3, 0.3, 0.3, 1) spinner.font_size = 12 qzw.CellSpinnerOptions.BackgroundColor = (0.6, 0.6, 0.65, 1) text = qzw.CellTxtInput(background_color=(0.3, 0.3, 0.3, 1), font_size=12) text.halign = "right" self.qt_pandas.set_widgets({0: spinner, 1: text}) #Layout self.add_widget(self.tp_main) self.tp_main.add_widget(ti_pandas) ti_pandas.add_widget(self.qt_pandas) self.tp_main.add_widget(ti_list) ti_list.add_widget(self.qt_list) self.tp_main.add_widget(ti_numpy) ti_numpy.add_widget(self.qt_array)
def build(self): self.root = None aconfig = JsonConvert.FromFile('testconfig.json') if isinstance(aconfig, AthenaConfiguration): self.root = TabbedPanel(do_default_tab=False) for command in aconfig.commands: if isinstance(command, AthenaCommand): layout = self.getGroupLayout(command) cmdWidget = self.presentCommand(command) layout.add_widget(cmdWidget) separator = AthenaSeparator() layout.add_widget(separator) # add an empty widget just to push everything to the top of the box layout... for child in self.root.tab_list: child.content.add_widget(Widget()) return self.root
class AfWidget(GridLayout): def __init__(self, **kwargs): self.p = PyAudio() self.rows = 1 self.cols = 1 GridLayout.__init__(self, **kwargs) self.mainPanel = TabbedPanel() print "WIDTH", self.width self.mainPanel.default_tab_text = "AF Output Devices" self.add_widget(self.mainPanel) self.inputPanel = TabbedPanelHeader(text="AF Input Devices") self.inputPanel.content = AfInputManager() self.mainPanel.add_widget(self.inputPanel) self.mainPanel.tab_width = 200 #topLayout = BoxLayout(orientation = "vertical") #topLayout.add_widget(Label(text="Input device", )) #self.inputDevs = Spinner(text = "Select input") #topLayout.add_widget(self.inputDevs) #topLayout.add_widget(Label(text="Output device", )) #self.outputDevs = Spinner(text = "Select output") #topLayout.add_widget(self.outputDevs) #self.updateSoundDevices() #self.add_widget(topLayout) def updateSoundDevices(self): api_cnt = self.p.get_host_api_count() dev_cnt = self.p.get_device_count() inputs = [] outputs = [] print "Number of API's", api_cnt, "Number of sound devices", dev_cnt for i in range(dev_cnt): d = self.p.get_device_info_by_index(i) if d['maxInputChannels'] > 0: inputs.append(d['name']) if d['maxOutputChannels'] > 0: outputs.append(d['name']) print "inputs", inputs print "outputs", outputs self.inputDevs.values = inputs self.outputDevs.values = outputs
class MonsterTab(TabbedPanelItem): def __init__(self, text, font_size=FONT_MEDIUM, *args, **kwargs): super(MonsterTab, self).__init__(font_size=font_size, *args, **kwargs) self.text = text # Non player monsters content = BoxLayout(orientation='vertical') self.add_widget(content) # Monster sheets self.monster_sheets = TabbedPanel(do_default_tab=False, tab_width=150, tab_height=100) def add_monster(button): popup = AddMonsterPopup(self) popup.open() buttons = BoxLayout(orientation='horizontal', size_hint=(1, .1)) new_monster = Button(text='+', on_press=add_monster) refresh = Button(text='refresh', on_press=lambda x: self.load_monsters()) buttons.add_widget(new_monster) buttons.add_widget(refresh) content.add_widget(buttons) content.add_widget(self.monster_sheets) self.load_monsters() def load_monsters(self): # existing = {panel.text for panel in self.monster_sheets.} monsters = sorted(session.query(MonsterInstance).all(), key=lambda monster: monster.name) for monster in monsters: self.add_monster(monster) def add_monster(self, monster): monster = session.merge(monster) session.commit() self.monster_sheets.add_widget(MonsterSheet(monster)) def new_monster(self, name): self.add_monster(Monster(name=name))
class CharacterRulesScreen(Screen): """Screen with TabbedPanel for all the character-rulebooks""" engine = ObjectProperty() character = ObjectProperty() toggle = ObjectProperty() def _get_rulebook(self, rb): return { 'character': self.character.rulebook, 'avatar': self.character.avatar.rulebook, 'character_thing': self.character.thing.rulebook, 'character_place': self.character.place.rulebook, 'character_portal': self.character.portal.rulebook }[rb] def finalize(self, *args): assert not hasattr(self, '_finalized') if not (self.engine and self.toggle and self.character): Clock.schedule_once(self.finalize, 0) return self._tabs = TabbedPanel(do_default_tab=False) for rb, txt in (('character', 'character'), ('avatar', 'avatar'), ('character_thing', 'thing'), ('character_place', 'place'), ('character_portal', 'portal')): tab = TabbedPanelItem(text=txt) setattr(self, '_{}_tab'.format(rb), tab) box = RulesBox(engine=self.engine, rulebook=self._get_rulebook(rb), entity=self.character, toggle=self.toggle) tab.add_widget(box) self._tabs.add_widget(tab) self.add_widget(self._tabs) self._finalized = True def on_character(self, *args): if not hasattr(self, '_finalized'): self.finalize() return for rb in ('character', 'avatar', 'character_thing', 'character_place', 'character_portal'): tab = getattr(self, '_{}_tab'.format(rb)) tab.content.entity = self.character tab.content.rulebook = self._get_rulebook(rb)
def __init__(self, character, font_size=FONT_MEDIUM, *args, **kwargs): super(CharacterSheet, self).__init__(font_size=font_size, *args, **kwargs) self.character = character self.text = character.name details = TabbedPanel(do_default_tab=False, tab_width=350, tab_height=80) details.add_widget(StatTab(character)) details.add_widget(SpellTab()) details.add_widget(CharacterItemsTab(character)) details.add_widget(BackstoryTab(character)) self.add_widget(details)
def __init__(self, text, font_size=FONT_MEDIUM, *args, **kwargs): super(SoundsTab, self).__init__(font_size=font_size, *args, **kwargs) self.text = text # Non player characters content = BoxLayout(orientation='vertical') self.add_widget(content) category_tabs = TabbedPanel(do_default_tab=False, tab_width=200, tab_height=80) categories = {x[0] for x in os.walk(SOUNDS_DIR)} - {SOUNDS_DIR} print(categories) for category in categories: category_tabs.add_widget(SoundCategoryTab(category)) content.add_widget(category_tabs)
def __init__(self): TabbedPanel.__init__(self) self.mangaBackGroundDownloader = MangaBackGroundDownloader.MangaBackGroundDownloader() self.list_adapter.bind(on_selection_change=self.mangaSelected) self.ids.downloadChapters.bind(on_press=self.downloadChapters) self.ids.getMangaList.bind(on_press=self.downloadMangaList) self.ids.pauseDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.pauseAllDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.removeDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.removeAllDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.resumeDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.resumeAllDownloadSession.bind(on_press=self.pauseCancelDownloads) self.ids.selectAllDownloadSession.bind(on_press=self.selectUnSelectList) self.ids.clearAllDownloadSession.bind(on_press=self.selectUnSelectList) self.ids.selectAllChapters.bind(on_press=self.selectUnSelectList) self.ids.clearAllChapters.bind(on_press=self.selectUnSelectList) self.ids.selectNew.bind(on_press=self.selectUnSelectList) self.ids.downloadNew.bind(on_press=self.downloadNew) self.init = True self.mangaBackGroundDownloader.getMangaList(self.currentMangaSite, self.updateMangaList) #Build the settings page self.settings = SettingsWithSidebar() self.settings.interface.menu.remove_widget(self.settings.interface.menu.close_button) app = App.get_running_app() self.config = app.load_config() self.settings.add_json_panel('Manga Settings', self.config, 'manga_settings.json') self.settings.add_json_panel('Proxy Settings', self.config, 'proxy_settings.json') self.ids.optionTab.add_widget(self.settings) self.mangaBackGroundDownloader.setConfig(self.config) self.settings.bind(on_config_change=self.on_config_change) self.setDownloadPath() self.setProxyInfo()
def build(self): tb_panel= TabbedPanel() #Create text tab th_text_head = TabbedPanelHeader(text='Text tab') th_text_head.content= Label(text='This is my text content') #Create image tab th_img_head= TabbedPanelHeader(text='Image tab') th_img_head.content= Image(source='sample.jpg',pos=(400, 100), size=(400, 400)) #Create button tab th_btn_head = TabbedPanelHeader(text='Button tab') th_btn_head.content= Button(text='This is my button',font_size=20) tb_panel.add_widget(th_text_head) tb_panel.add_widget(th_img_head) tb_panel.add_widget(th_btn_head) return tb_panel
def __init__(self, **kwargs): super(TabbedPanelApp, self).__init__(**kwargs) self.cols =1 tb_panel= TabbedPanel() th_text_head = TabbedPanelHeader(text='Text tab') th_text_head.content= Label(text='Un text') th_img_head= TabbedPanelHeader(text='Image tab') th_img_head.content= Image(source='nature4.jpg',pos=(400, 100), size=(400, 400)) th_btn_head = TabbedPanelHeader(text='Button tab') th_btn_head.content= Button(text='Acesta este un buton',font_size=20, size_hint=(0.8, 0.8)) tb_panel.add_widget(th_text_head) tb_panel.add_widget(th_img_head) tb_panel.add_widget(th_btn_head) self.add_widget(tb_panel)
def build(self): tab_panel = TabbedPanel() tab_panel.do_default_tab = False tab_panel.add_widget(self.make_server_tab()) tab_panel.add_widget(self.make_client_tab()) tab_panel.set_def_tab(tab_panel.tab_list[1]) return tab_panel
def __init__(self, **kwargs): super(BandLay, self).__init__(**kwargs) self.tab_item = TabbedPanel() self.tab_item.do_default_tab = False self.tab_item.tab_height = 20 list_bands = [] if site.equipment == 'ADU06': list_bands = ['A', 'B', 'F', 'C', 'D'] elif site.equipment == 'ADU07': list_bands = ['65536H', '4096H', '128H', '4H'] for band in list_bands: tab_item = TabbedPanelItem() tab_item.text = band self.tab_item.add_widget(tab_item) list_file_pplt = self.search_pplt_file(band) site.files_plot[band] = list_file_pplt self.grid_lay = ScrollBox() i = 0 for file_pplt_select in site.files_plot[band]: self.grid_lay.ids.grid.add_widget(file_pplt_select) print(file_pplt_select.obj_pplt.name) i += 1 if band == '65536H' or band == '4096H': self.grid_lay.ids.grid.size_hint_x = None self.grid_lay.ids.grid.width = int(i / 3 * 300) else: self.grid_lay.ids.grid.size_hint_x = None self.grid_lay.ids.grid.width = int(i/3 * 250) tab_item.add_widget(self.grid_lay) self.add_widget(self.tab_item) print(project.path_file_ppmt)
def build(self): ##Instance Variables self.showDots = True self.showGrid = True self.showBreaklines = True self.showSkeleton = True self.showKnot = True self.knotX = 4 self.knotY = 4 self.knotWidth = 8 self.knotWidthView = 8 self.gridUnits = 50 self.gridUnitsView = 50 self.offsetX = 150 self.offsetY = 50 self.totTabs = 1 self.tabNo = 1 ##Main Layout self.layout_main = AnchorLayout(anchor_x = "left", anchor_y="top") self.layout_tabs= FloatLayout(size=(Window.width, Window.height), size_hint=(0.1, 0.08)) ##Top Tab Bar - allowing multiple knots self.tp = TabbedPanel() self.tp.default_tab_text = "Knot 1" self.layout_main.add_widget(self.tp) self.addTab = TabbedPanelHeader(text='+') self.addTab.bind(on_release = self.onPressAddTab) self.addTab = Button(text='+', pos =(Window.width*.9,Window.height*.92)) self.addTab.bind(on_press = self.onPressAddTab) self.tp.default_tab_content = CelticKnotwork2().build() #get tab content from CelticKnotwork2 self.layout_tabs.add_widget(self.addTab) self.layout_main.add_widget(self.layout_tabs) Window.bind(on_resize=self.on_resize) return self.layout_main
def build(self): btn_animate = Button( text='animate', on_press=self.animate, size_hint=(0.4, 0.2)) set_T = Slider(min=10, max=20, value=12) set_T.bind(value=self.set_T) root = TabbedPanel(do_default_tab=False) # cracking panel cracking_panel = TabbedPanelHeader(text='Cracking') cracking_panel.content = BoxLayout(orientation='vertical') cracking_panel.content.add_widget(self.cracking_wid) cracking_panel.content.add_widget(btn_animate) # cb panel cb_panel = TabbedPanelHeader(text='CB') cb_panel.content = BoxLayout() cb_panel.content.add_widget(self.cb_wid) cb_panel.content.add_widget(set_T) # matrix panel #matrix_panel = TabbedPanelHeader(text='Matrix') #matrix_panel = GridLayout() # curve panel btn_plot = Button( text='Plot', on_press=self.plot_eps_sig, size_hint=(0.4, 0.2)) curve_panel = TabbedPanelHeader(text='Curve') curve_panel.content = BoxLayout(orientation='vertical') curve_panel.content.add_widget(self.curve_wid) curve_panel.content.add_widget(btn_plot) # curve_panel.content.add_widget(wid1) root.add_widget(cb_panel) # root.add_widget(matrix_panel) root.add_widget(cracking_panel) root.add_widget(curve_panel) return root
def build(self): #*******THE-ROOT-WIDGET****** root = GridLayout(cols=1, rows=2, spacing=10) #*******CHILDREN-OF-ROOT-WIDGET****** layouttop = GridLayout(cols=3, rows=1) layouttop.size_hint = (1, 0.1) layoutmid = GridLayout(cols=1, spacing=10) #******CHILDREN-OF-LAYOUTTOP****** menubtn = Button() menubtn.size_hint = (0.1, 0.1) head = Label(text='PRO-FORMA',size_hint_y = None,size_hint_x=None, width=200) head.size_hint = (0.8, 0.1) backbtn = Button() backbtn.size_hint = (0.1, 0.1) #******CHILDREN-OF-LAYOUTMID****** tp_panel = TabbedPanel() #___*******TAB1*****************************___# th_tab1 = TabbedPanelHeader(text = 'Info. Tab') layoutinfo = GridLayout(rows=2) layoutinfo.add_widget(Label(text='Powered by kivy')) #*******CALLING-SUB-WIDGETS-TAB2****** th_tab1.content = layoutinfo tp_panel.add_widget(th_tab1) #___*******TAB2*****************************___# th_tab2 = TabbedPanelHeader(text = 'Pro-Forma') #******children-of-tab1****** scroll = ScrollView(size_hint=(None, None), size=(800, 1000), pos_hint={'center_x':1,'center_y':1}) mainlayout = GridLayout(cols = 1, spacing = 10, size_hint_y=None) mainlayout.bind(minimum_height=mainlayout.setter('height')) #children-of-main-layout layouttab1 = GridLayout(cols=2, pos_hint ={'center_x': 1, 'center_y': 1},row_force_default=True, row_default_height=40, size_hint_y=None, height = 250) layoutmix = GridLayout(cols=4, pos_hint ={'center_x': 1, 'center_y': 1},row_force_default=True, row_default_height=40 ,size_hint_y=None, height = 80) layoutexpense = GridLayout(cols=2, pos_hint ={'center_x': 1, 'center_y': 1},row_force_default=True, row_default_height=40, size_hint_y=None, height = 1000) layoutacc = GridLayout(cols=1, pos_hint ={'center_x': 1, 'center_y': 1},row_force_default=True, row_default_height=40, size_hint_y=None, height = 250) #******CONTENT1******* mainlayout.add_widget(Label(text='Property Information',size_hint_y=None, height=50)) #*******CONTENT2******* layouttab1.add_widget(Label(text= 'Property Name', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Property Address', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Town/City', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Asking Price', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Total Units', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Square Footage', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) mainlayout.add_widget(layouttab1) #*******CONTENT3******* mainlayout.add_widget(Label(text='Unit Mix',size_hint_x=None, width=200, size_hint_y=None, height=50)) #*******CONTENT4******* layoutmix.add_widget(Label(text='# of Units')) layoutmix.add_widget(Label(text='Unit Type')) layoutmix.add_widget(Label(text='SquareFeet')) layoutmix.add_widget(Label(text='Monthly Rent')) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) mainlayout.add_widget(layoutmix) #*******CONTENT5******* mainlayout.add_widget(Label(text='Expenses',size_hint_x=None, width=200, size_hint_y=None, height=50)) #*******CONTENT6******* layoutexpense.add_widget(Label(text='Accounting')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Advertising')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Bank Charges')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Electricity')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Gas')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Security')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='All insurance')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Permits and fees')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Maintenance')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Trash Pick-up')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='All other')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) mainlayout.add_widget(layoutexpense) #*******CONTENT7******* mainlayout.add_widget(Label(text='Accounts',size_hint_x=None, width=200, size_hint_y=None, height=50)) #*******CONTENT8layoutacc layoutacc.add_widget(Label(text='Select your financing type')) mainlayout.add_widget(layoutacc) #*******CALLING-SUB-WIDGETS-TAB2****** scroll.add_widget(mainlayout) th_tab2.content = scroll tp_panel.add_widget(th_tab2) #___*******TAB3*******___# th_tab3 = TabbedPanelHeader(text = 'Saved Reports') #*******CALLING-SUB-WIDGETS-TAB3****** tp_panel.add_widget(th_tab3) #******CALLING-WIDGETS****** layouttop.add_widget(menubtn) layouttop.add_widget(head) layouttop.add_widget(backbtn) layoutmid.add_widget(tp_panel) root.add_widget(layouttop) root.add_widget(layoutmid) #******RETURN-ROOT****** return root
def __init__(self, **kwargs): ''' Init main class ui ''' super(MainBox, self).__init__(**kwargs) self.f_size = '15sp' # Shape Widget self.shape = Shape(size_hint=(0.7, 1)) self.add_widget(self.shape) # Right Menu self.panel = TabbedPanel(size_hint=(0.3, 1), do_default_tab=False) self.tab_param = TabbedPanelItem(text='Parameters') self.tab_color = TabbedPanelItem(text='Shape') self.tab_color_bg = TabbedPanelItem(text='Background') self.tab_export = TabbedPanelItem(text='Export') self.panel.add_widget(self.tab_param) self.panel.add_widget(self.tab_color) self.panel.add_widget(self.tab_color_bg) self.panel.add_widget(self.tab_export) self.menu_right = RightMenu( padding=15, orientation="vertical") # Switch mode line self.box_switch = BoxLayout(orientation='horizontal') self.mode_label = Label( text="Line mode", font_size=self.f_size, markup=True) self.box_switch.add_widget(self.mode_label) self.switch_mode = Switch(active=False) self.switch_mode.bind(active=self.on_switch) self.box_switch.add_widget(self.switch_mode) self.menu_right.add_widget(self.box_switch) # Size value self.box_size = BoxLayout(orientation='horizontal') self.size_label = Label( text="Shape size", font_size=self.f_size, markup=True) self.size_label_value = Label( text=str(self.shape.shape_size), font_size=self.f_size, markup=True) self.box_size.add_widget(self.size_label) self.box_size.add_widget(self.size_label_value) self.slider_shape_size = Slider( min=self.shape.property('shape_size').get_min(self.shape), max=self.shape.property('shape_size').get_max(self.shape), value=self.shape.shape_size, step=1) self.slider_shape_size.bind(value=self.change_shape_size) self.menu_right.add_widget(self.box_size) self.menu_right.add_widget(self.slider_shape_size) # Width point or line self.box_stroke = BoxLayout(orientation='horizontal') self.wdth_label = Label( text="Stroke width", font_size=self.f_size, markup=True) self.wdth_label_value = Label( text=str(self.shape.wdth), font_size=self.f_size, markup=True) self.box_stroke.add_widget(self.wdth_label) self.box_stroke.add_widget(self.wdth_label_value) self.slider_wdth = Slider( min=self.shape.property('wdth').get_min(self.shape), max=self.shape.property('wdth').get_max(self.shape), value=self.shape.wdth, step=1) self.slider_wdth.bind(value=self.change_wdth) self.menu_right.add_widget(self.box_stroke) self.menu_right.add_widget(self.slider_wdth) # a value self.box_a = BoxLayout(orientation='horizontal') self.a_label = Label( text="Param a ", font_size=self.f_size, markup=True) self.a_label_value = Label( text=str(self.shape.a), font_size=self.f_size, markup=True) self.box_a.add_widget(self.a_label) self.box_a.add_widget(self.a_label_value) self.slider_a = Slider( min=self.shape.property('a').get_min(self.shape), max=self.shape.property('a').get_max(self.shape), value=self.shape.a) self.slider_a.bind(value=self.change_a) self.menu_right.add_widget(self.box_a) self.menu_right.add_widget(self.slider_a) # b value self.box_b = BoxLayout(orientation='horizontal') self.b_label = Label( text="Param b ", font_size=self.f_size, markup=True) self.b_label_value = Label( text=str(self.shape.b), font_size=self.f_size, markup=True) self.box_b.add_widget(self.b_label) self.box_b.add_widget(self.b_label_value) self.slider_b = Slider( min=self.shape.property('b').get_min(self.shape), max=self.shape.property('b').get_max(self.shape), value=self.shape.b) self.slider_b.bind(value=self.change_b) self.menu_right.add_widget(self.box_b) self.menu_right.add_widget(self.slider_b) # m value self.box_m = BoxLayout(orientation='horizontal') self.m_label = Label( text="Param m ", font_size=self.f_size, markup=True) self.m_label_value = Label( text=str(self.shape.m), font_size=self.f_size, markup=True) self.box_m.add_widget(self.m_label) self.box_m.add_widget(self.m_label_value) self.slider_m = Slider( min=self.shape.property('m').get_min(self.shape), max=self.shape.property('m').get_max(self.shape), value=self.shape.m) self.slider_m.bind(value=self.change_m) self.menu_right.add_widget(self.box_m) self.menu_right.add_widget(self.slider_m) # n1 value self.box_n1 = BoxLayout(orientation='horizontal') self.n1_label = Label( text="Param n1 ", font_size=self.f_size, markup=True) self.n1_label_value = Label( text=str(self.shape.n1), font_size=self.f_size, markup=True) self.box_n1.add_widget(self.n1_label) self.box_n1.add_widget(self.n1_label_value) self.slider_n1 = Slider( min=self.shape.property('n1').get_min(self.shape), max=self.shape.property('n1').get_max(self.shape), value=self.shape.n1) self.slider_n1.bind(value=self.change_n1) self.menu_right.add_widget(self.box_n1) self.menu_right.add_widget(self.slider_n1) # n2 value self.box_n2 = BoxLayout(orientation='horizontal') self.n2_label = Label( text="Param n2 ", font_size=self.f_size, markup=True) self.n2_label_value = Label( text=str(self.shape.n2), font_size=self.f_size, markup=True) self.box_n2.add_widget(self.n2_label) self.box_n2.add_widget(self.n2_label_value) self.slider_n2 = Slider( min=self.shape.property('n2').get_min(self.shape), max=self.shape.property('n2').get_max(self.shape), value=self.shape.n2) self.slider_n2.bind(value=self.change_n2) self.menu_right.add_widget(self.box_n2) self.menu_right.add_widget(self.slider_n2) # n3 value self.box_n3 = BoxLayout(orientation='horizontal') self.n3_label = Label( text="Param n3 ", font_size=self.f_size, markup=True) self.n3_label_value = Label( text=str(self.shape.n3), font_size=self.f_size, markup=True) self.box_n3.add_widget(self.n3_label) self.box_n3.add_widget(self.n3_label_value) self.slider_n3 = Slider( min=self.shape.property('n3').get_min(self.shape), max=self.shape.property('n3').get_max(self.shape), value=self.shape.n3) self.slider_n3.bind(value=self.change_n3) self.menu_right.add_widget(self.box_n3) self.menu_right.add_widget(self.slider_n3) # Nb points self.box_nbp = BoxLayout(orientation='horizontal') self.nbp_label = Label( text="Points number ", font_size=self.f_size, markup=True) self.nbp_label_value = Label( text=str(self.shape.nbp), font_size=self.f_size, markup=True) self.box_nbp.add_widget(self.nbp_label) self.box_nbp.add_widget(self.nbp_label_value) self.slider_nbp = Slider( min=self.shape.property('nbp').get_min(self.shape), max=self.shape.property('nbp').get_max(self.shape), value=self.shape.nbp, step=2) self.slider_nbp.bind(value=self.change_nbp) self.menu_right.add_widget(self.box_nbp) self.menu_right.add_widget(self.slider_nbp) # Percent self.box_percent = BoxLayout(orientation='horizontal') self.percent_label = Label( text="Percent ", font_size=self.f_size, markup=True) self.percent_label_value = Label( text=str(self.shape.percent), font_size=self.f_size, markup=True) self.box_percent.add_widget(self.percent_label) self.box_percent.add_widget(self.percent_label_value) self.slider_percent = Slider( min=self.shape.property('percent').get_min(self.shape), max=self.shape.property('percent').get_max(self.shape), value=self.shape.percent, step=1) self.slider_percent.bind(value=self.change_percent) self.menu_right.add_widget(self.box_percent) self.menu_right.add_widget(self.slider_percent) # Travel self.box_travel = BoxLayout(orientation='horizontal') self.travel_label = Label( text="Travel ", font_size=self.f_size, markup=True) self.travel_label_value = Label( text=str(self.shape.travel), font_size=self.f_size, markup=True) self.box_travel.add_widget(self.travel_label) self.box_travel.add_widget(self.travel_label_value) self.slider_travel = Slider( min=self.shape.property('travel').get_min(self.shape), max=self.shape.property('travel').get_max(self.shape), value=self.shape.travel, step=2) self.slider_travel.bind(value=self.change_travel) self.menu_right.add_widget(self.box_travel) self.menu_right.add_widget(self.slider_travel) # ColorPicker for Shape self.picker = ColorPicker() self.picker.bind(color=self.on_color) # ColorPicker for background self.picker_bg = ColorPicker() self.picker_bg.bind(color=self.on_color_bg) # Export svg button self.export_button = Button(text='Export', size_hint=(1, 0.15)) self.export_button.bind(on_press=self.export) # Tab packs self.tab_param.add_widget(self.menu_right) self.tab_color.add_widget(self.picker) self.tab_color_bg.add_widget(self.picker_bg) self.tab_export.add_widget(self.export_button) self.add_widget(self.panel) # Popups self.pop_export = Popup( title="Export file", content=Label(text="File exported"), size_hint=(None, None), size=(640, 240))
def finalize(self, *args): """Add my tabs""" if not self.canvas: Clock.schedule_once(self.finalize, 0) return deck_builder_kwargs = { 'pos_hint': {'x': 0, 'y': 0}, 'starting_pos_hint': {'x': 0.05, 'top': 0.95}, 'card_size_hint': (0.3, 0.4), 'card_hint_step': (0, -0.1), 'deck_x_hint_step': 0.4 } self._tabs = TabbedPanel( size=self.size, pos=self.pos, do_default_tab=False ) self.bind( size=self._tabs.setter('size'), pos=self._tabs.setter('pos') ) self.add_widget(self._tabs) for functyp in 'trigger', 'prereq', 'action': tab = TabbedPanelItem(text=functyp.capitalize()) setattr(self, '_{}_tab'.format(functyp), tab) self._tabs.add_widget(getattr(self, '_{}_tab'.format(functyp))) builder = DeckBuilderView(**deck_builder_kwargs) setattr(self, '_{}_builder'.format(functyp), builder) builder.bind(decks=getattr(self, '_trigger_push_{}s'.format(functyp))) scroll_left = DeckBuilderScrollBar( size_hint_x=0.01, pos_hint={'x': 0, 'y': 0}, deckbuilder=builder, deckidx=0, scroll_min=0 ) setattr(self, '_scroll_left_' + functyp, scroll_left) scroll_right = DeckBuilderScrollBar( size_hint_x=0.01, pos_hint={'right': 1, 'y': 0}, deckbuilder=builder, deckidx=1, scroll_min=0 ) setattr(self, '_scroll_right_' + functyp, scroll_right) layout = FloatLayout() setattr(self, '_{}_layout'.format(functyp), layout) tab.add_widget(layout) layout.add_widget(builder) layout.add_widget(scroll_left) layout.add_widget(scroll_right) layout.add_widget( Label( text='Used', pos_hint={'center_x': 0.1, 'center_y': 0.98}, size_hint=(None, None) ) ) layout.add_widget( Label( text='Unused', pos_hint={'center_x': 0.5, 'center_y': 0.98}, size_hint=(None, None) ) ) self.bind(rule=getattr(self, '_trigger_pull_{}s'.format(functyp)))
class RulesView(Widget): """The view to edit a rule Presents three tabs, one each for trigger, prereq, and action. Each has a deckbuilder in it with a column of used functions and a column of unused actions. """ engine = ObjectProperty() rulebook = ObjectProperty() entity = ObjectProperty() rule = ObjectProperty(allownone=True) def on_rule(self, *args): """Make sure to update when the rule changes""" if self.rule is None: return self.rule.connect(self._listen_to_rule) def _listen_to_rule(self, rule, **kwargs): if rule is not self.rule: rule.disconnect(self._listen_to_rule) return if 'triggers' in kwargs: self.pull_triggers() if 'prereqs' in kwargs: self.pull_prereqs() if 'actions' in kwargs: self.pull_actions() def __init__(self, **kwargs): super().__init__(**kwargs) self.finalize() def finalize(self, *args): """Add my tabs""" if not self.canvas: Clock.schedule_once(self.finalize, 0) return deck_builder_kwargs = { 'pos_hint': {'x': 0, 'y': 0}, 'starting_pos_hint': {'x': 0.05, 'top': 0.95}, 'card_size_hint': (0.3, 0.4), 'card_hint_step': (0, -0.1), 'deck_x_hint_step': 0.4 } self._tabs = TabbedPanel( size=self.size, pos=self.pos, do_default_tab=False ) self.bind( size=self._tabs.setter('size'), pos=self._tabs.setter('pos') ) self.add_widget(self._tabs) for functyp in 'trigger', 'prereq', 'action': tab = TabbedPanelItem(text=functyp.capitalize()) setattr(self, '_{}_tab'.format(functyp), tab) self._tabs.add_widget(getattr(self, '_{}_tab'.format(functyp))) builder = DeckBuilderView(**deck_builder_kwargs) setattr(self, '_{}_builder'.format(functyp), builder) builder.bind(decks=getattr(self, '_trigger_push_{}s'.format(functyp))) scroll_left = DeckBuilderScrollBar( size_hint_x=0.01, pos_hint={'x': 0, 'y': 0}, deckbuilder=builder, deckidx=0, scroll_min=0 ) setattr(self, '_scroll_left_' + functyp, scroll_left) scroll_right = DeckBuilderScrollBar( size_hint_x=0.01, pos_hint={'right': 1, 'y': 0}, deckbuilder=builder, deckidx=1, scroll_min=0 ) setattr(self, '_scroll_right_' + functyp, scroll_right) layout = FloatLayout() setattr(self, '_{}_layout'.format(functyp), layout) tab.add_widget(layout) layout.add_widget(builder) layout.add_widget(scroll_left) layout.add_widget(scroll_right) layout.add_widget( Label( text='Used', pos_hint={'center_x': 0.1, 'center_y': 0.98}, size_hint=(None, None) ) ) layout.add_widget( Label( text='Unused', pos_hint={'center_x': 0.5, 'center_y': 0.98}, size_hint=(None, None) ) ) self.bind(rule=getattr(self, '_trigger_pull_{}s'.format(functyp))) def get_functions_cards(self, what, allfuncs): """Return a pair of lists of Card widgets for used and unused functions. :param what: a string: 'trigger', 'prereq', or 'action' :param allfuncs: a sequence of functions' (name, sourcecode, signature) """ if not self.rule: return [], [] rulefuncnames = getattr(self.rule, what+'s') unused = [ Card( ud={ 'type': what, 'funcname': name, 'signature': sig }, headline_text=name, show_art=False, midline_text=what.capitalize(), text=source ) for (name, source, sig) in allfuncs if name not in rulefuncnames ] used = [ Card( ud={ 'type': what, 'funcname': name, }, headline_text=name, show_art=False, midline_text=what.capitalize(), text=str(getattr(getattr(self.engine, what), name)) ) for name in rulefuncnames ] return used, unused def set_functions(self, what, allfuncs): """Set the cards in the ``what`` builder to ``allfuncs`` :param what: a string, 'trigger', 'prereq', or 'action' :param allfuncs: a sequence of triples of (name, sourcecode, signature) as taken by my ``get_function_cards`` method. """ setattr(getattr(self, '_{}_builder'.format(what)), 'decks', self.get_functions_cards(what, allfuncs)) def _pull_functions(self, what): return self.get_functions_cards(what, list(map(self.inspect_func, getattr(self.engine, what)._cache.items()))) def pull_triggers(self, *args): """Refresh the cards in the trigger builder""" self._trigger_builder.decks = self._pull_functions('trigger') _trigger_pull_triggers = trigger(pull_triggers) def pull_prereqs(self, *args): """Refresh the cards in the prereq builder""" self._prereq_builder.decks = self._pull_functions('prereq') _trigger_pull_prereqs = trigger(pull_prereqs) def pull_actions(self, *args): """Refresh the cards in the action builder""" self._action_builder.decks = self._pull_functions('action') _trigger_pull_actions = trigger(pull_actions) def inspect_func(self, namesrc): """Take a function's (name, sourcecode) and return a triple of (name, sourcecode, signature)""" (name, src) = namesrc glbls = {} lcls = {} exec(src, glbls, lcls) assert name in lcls func = lcls[name] return name, src, signature(func) def update_builders(self, *args): for attrn in '_trigger_builder', '_prereq_builder', '_action_builder': if not hasattr(self, attrn): dbg('RulesView: no {}'.format(attrn)) Clock.schedule_once(self.update_builders, 0) return self._trigger_builder.clear_widgets() self._prereq_builder.clear_widgets() self._action_builder.clear_widgets() if self.rule is None: dbg('RulesView: no rule') return if hasattr(self, '_list'): self._list.redata() self.pull_triggers() self.pull_prereqs() self.pull_actions() _trigger_update_builders = trigger(update_builders) def _upd_unused(self, what): """Make sure to have exactly one copy of every valid function in the "unused" pile on the right. Doesn't read from the database. :param what: a string, 'trigger', 'prereq', or 'action' """ builder = getattr(self, '_{}_builder'.format(what)) updtrig = getattr(self, '_trigger_upd_unused_{}s'.format(what)) builder.unbind(decks=updtrig) funcs = OrderedDict() cards = list(self._action_builder.decks[1]) cards.reverse() for card in cards: funcs[card.ud['funcname']] = card for card in self._action_builder.decks[0]: if card.ud['funcname'] not in funcs: funcs[card.ud['funcname']] = card.copy() unused = list(funcs.values()) unused.reverse() builder.decks[1] = unused builder.bind(decks=updtrig) def upd_unused_actions(self, *args): self._upd_unused('action') _trigger_upd_unused_actions = trigger(upd_unused_actions) def upd_unused_triggers(self, *args): self._upd_unused('trigger') _trigger_upd_unused_triggers = trigger(upd_unused_triggers) def upd_unused_prereqs(self, *args): self._upd_unused('prereq') _trigger_upd_unused_prereqs = trigger(upd_unused_prereqs) def _push_funcs(self, what): if not self.rule: Logger.debug("RulesView: not pushing {} for lack of rule".format(what)) return funcs = [ card.ud['funcname'] for card in getattr(self, '_{}_builder'.format(what)).decks[0] ] funlist = getattr(self.rule, what+'s') if funlist != funcs: setattr(self.rule, what+'s', funcs) def push_actions(self, *args): self._push_funcs('action') _trigger_push_actions = trigger(push_actions) def push_prereqs(self, *args): self._push_funcs('prereq') _trigger_push_prereqs = trigger(push_prereqs) def push_triggers(self, att, *args): self._push_funcs('trigger') _trigger_push_triggers = trigger(push_triggers)
def build_layout(self): box_base = BoxLayout(orientation="vertical", padding=0) ctrl_box_haut = BoxLayout(orientation="horizontal", padding=10, size_hint_y=None) # Nom de l'individu ctrl_label = Label(text="[color=000000][size=28][b]%s[/b][/size][/color]" % self.dictIndividu["nomComplet"], markup=True, size_hint_y=None) ctrl_box_haut.add_widget(ctrl_label) # Photo photo = self.dictIndividu["photo"] if photo == None : if self.dictIndividu["IDcivilite"] == 1 : photo = UTILS_Images.GetTextureFromFichier("images/homme.png") if self.dictIndividu["IDcivilite"] in (2, 3) : photo = UTILS_Images.GetTextureFromFichier("images/femme.png") if self.dictIndividu["IDcivilite"] == 4 : photo = UTILS_Images.GetTextureFromFichier("images/garcon.png") if self.dictIndividu["IDcivilite"] == 5 : photo = UTILS_Images.GetTextureFromFichier("images/fille.png") if photo != None : ctrl_image = Image(texture=photo, size_hint_x=None) ctrl_box_haut.add_widget(ctrl_image) box_base.add_widget(ctrl_box_haut) # Onglets ctrl_onglets = TabbedPanel(do_default_tab=False, padding=10, tab_pos='top_left') # Vertical=left_bottom box_base.add_widget(ctrl_onglets) liste_onglets = [ {"code":"messages", "titre":u"Messages"}, {"code":"identite", "titre":u"Identité"}, {"code":"liens", "titre":u"Liens"}, {"code":"coordonnees", "titre":u"Coordonnées"}, {"code":"scolarite", "titre":u"Scolarité"}, {"code":"activites", "titre":u"Activités"}, {"code":"medical", "titre":u"Médical"}, ] for dictOnglet in liste_onglets : onglet = TabbedPanelItem(id=dictOnglet["code"], text=dictOnglet["titre"]) doc = RstDocument(text=self.GetTexteOnglet(dictOnglet["code"])) onglet.add_widget(doc) ctrl_onglets.add_widget(onglet) # Barre d'état grid = GridLayout(cols=3, row=1, row_force_default=True, row_default_height=30, spacing=(5, 5), padding=10, size_hint=(1, None), height=50) grid.canvas.before.add(Color(0.128, 0.128, 0.128)) def redraw(self, args): grid.bg_rect.size = self.size grid.bg_rect.pos = self.pos with grid.canvas.before: grid.bg_rect = Rectangle(pos=grid.pos, size=grid.size) grid.bind(pos=redraw, size=redraw) #ctrl_bouton = Button(id="consommations", text="Consommations", width=200, size_hint=(None, None)) #grid.add_widget(ctrl_bouton) box_base.add_widget(grid) # Finalisation du layout self.add_widget(box_base)
class BandLay(BoxLayout): def __init__(self, **kwargs): super(BandLay, self).__init__(**kwargs) self.tab_item = TabbedPanel() self.tab_item.do_default_tab = False self.tab_item.tab_height = 20 list_bands = [] if site.equipment == 'ADU06': list_bands = ['A', 'B', 'F', 'C', 'D'] elif site.equipment == 'ADU07': list_bands = ['65536H', '4096H', '128H', '4H'] for band in list_bands: tab_item = TabbedPanelItem() tab_item.text = band self.tab_item.add_widget(tab_item) list_file_pplt = self.search_pplt_file(band) site.files_plot[band] = list_file_pplt self.grid_lay = ScrollBox() i = 0 for file_pplt_select in site.files_plot[band]: self.grid_lay.ids.grid.add_widget(file_pplt_select) print(file_pplt_select.obj_pplt.name) i += 1 if band == '65536H' or band == '4096H': self.grid_lay.ids.grid.size_hint_x = None self.grid_lay.ids.grid.width = int(i / 3 * 300) else: self.grid_lay.ids.grid.size_hint_x = None self.grid_lay.ids.grid.width = int(i/3 * 250) tab_item.add_widget(self.grid_lay) self.add_widget(self.tab_item) print(project.path_file_ppmt) def search_pplt_file(self, band): list_path_band_pplt = glob.glob('PampaMT/file_pplt/' + site.name + '/*' + band + '*') list_path_band_pplt = sorted(list_path_band_pplt) list_file_pplt = [] for path_file_ppmt in list_path_band_pplt: arq_pplt = open(path_file_ppmt, 'rb') file_pplt = pickle.load(arq_pplt) arq_pplt.close() file_pplt_select = FilePPLTSelect(object_pplt=file_pplt) if file_pplt.active_file == True: file_pplt_select.select() list_file_pplt.append(file_pplt_select) return list_file_pplt
def build(self): tab_panel= TabbedPanel() tab_panel.do_default_tab = False tab_panel.tab_width = 150 tab_panel.tab_height = 30 th_playlist = TabbedPanelHeader(text='Playlist Playout') th_playlist.content = Label(text='UI to create a playlist rundown') th_generic_live = TabbedPanelHeader(text='Generic Live Event') th_generic_live.content = Label(text='UI for running random live events') th_news = TabbedPanelHeader(text='News Broadcast') th_news.content = Label(text='UI for running a live news broadcast') th_worship = TabbedPanelHeader(text='Worship') th_worship.content= Label(text='UI for running praise & worships') th_football = TabbedPanelHeader(text='Football') th_football.content= Label(text='UI for running a football match') th_volleyball = TabbedPanelHeader(text='Volleyball') th_volleyball.content= Label(text='UI for running a volleyball match') tab_panel.add_widget(th_playlist) tab_panel.add_widget(th_generic_live) tab_panel.add_widget(th_news) tab_panel.add_widget(th_worship) tab_panel.add_widget(th_football) tab_panel.add_widget(th_volleyball) tab_panel.default_tab = th_playlist return tab_panel
def __init__(self): TabbedPanel.__init__(self) self.commChoice = "" self.ser = "" self.enterCount = ['Enter', 0] self.qryData = []
def build(self): #*******ROOTWIDGET******* layout = GridLayout(rows=2) #*******SUB-WIDGETS******* layoutTop = GridLayout(cols=3,rows=1)#SUB-WIDGET-1 layoutTop.size_hint = (1, 0.1) layoutMid = GridLayout(cols=1, size_hint_x=1)#SUB-WIDGET-2 #*******CONTENT-OF-SUB-WIDGET-1******* backbtn = Button() title = Label(text = 'Pro-Forma App', font_size = '20sp', pos = (0,300), size_hint_y = None,size_hint_x=None, width=200, halign ='right', valign='middle') title.size_hint = (None, 0.1) dropbtn = Button() #*******CONTENT-OF-SUB-WIDGET-2******* tp_panel = TabbedPanel() tp_panel.default_tab_text = "Login Tab" #*******TAB1******* th_tab1 = TabbedPanelHeader(text = 'Pro-Forma') #*******MAIN-LAYOUT-FOR-TAB1******* mainlayout = GridLayout(cols=1, spacing=10) #*******LAYOUT-FOR-PROPERTY-INFORMATION******* layouttab1 = GridLayout(cols=2,rows=6, pos_hint ={'center_x': .5, 'center_y': .5},row_force_default=True, row_default_height=40) #*******LAYOUT-FOR-UNIT-MIX******* layoutmix = GridLayout(cols=4, pos_hint ={'center_x': .5, 'center_y': .5},row_force_default=True, row_default_height=40) #*******LAYOUT-FOR-EXPENSES******* layoutexpense = GridLayout(cols=2) #*******LAYOUT-FOR-ACCOUNTS******* #*******CONTENT1******* mainlayout.add_widget(Label(text='Property Information',size_hint_y=None, height=50)) #*******CONTENT2******* layouttab1.add_widget(Label(text= 'Property Name', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Property Address', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Town/City', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Asking Price', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Total Units', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) layouttab1.add_widget(Label(text= 'Square Footage', size_hint_x=None, width=200,size_hint_y=None, height=50, font_size='20sp')) layouttab1.add_widget(TextInput(text='input', font_size=15, halign ='left', valign='middle')) mainlayout.add_widget(layouttab1) #*******CONTENT3******* mainlayout.add_widget(Label(text='Unit Mix',size_hint_x=None, width=200, size_hint_y=None, height=50)) #*******CONTENT4******* layoutmix.add_widget(Label(text='# of Units')) layoutmix.add_widget(Label(text='Unit Type')) layoutmix.add_widget(Label(text='SquareFeet')) layoutmix.add_widget(Label(text='Monthly Rent')) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) layoutmix.add_widget(TextInput(text='Input', font_size=15)) mainlayout.add_widget(layoutmix) #*******CONTENT5******* mainlayout.add_widget(Label(text='Expenses',size_hint_x=None, width=200, size_hint_y=None, height=50)) #*******CONTENT6******* layoutexpense.add_widget(Label(text='Accounting')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Advertising')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Bank Charges')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Electricity')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Gas')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Security')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='All insurance')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Permits and fees')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Maintenance')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='Trash Pick-up')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) layoutexpense.add_widget(Label(text='All other')) layoutexpense.add_widget(TextInput(text='Input', font_size=15)) mainlayout.add_widget(layoutexpense) #*******CONTENT7******* mainlayout.add_widget(Label(text='Accounts')) #*******CONTENT7******* #*******SCOLLABILITY******* #*******CALLING-MAINLAYOUT-IN-TAB1******* th_tab1.content = mainlayout #___*******TAB2*******___# th_tab2 = TabbedPanelHeader(text = 'Info. Tab') #___*******TAB3*******___# th_tab3 = TabbedPanelHeader(text = 'Due Deligence') #___*******TAB4*******___# th_tab4 = TabbedPanelHeader(text = 'Saved Reports') #*******CALLING-TABS-TO-tp_panel******* tp_panel.add_widget(th_tab1) tp_panel.add_widget(th_tab2) tp_panel.add_widget(th_tab3) tp_panel.add_widget(th_tab4) #*******ADDING-CONTENTS-OF-SUB-WIDGETS******* layoutTop.add_widget(backbtn) layoutTop.add_widget(title) layoutTop.add_widget(dropbtn) layoutMid.add_widget(tp_panel) #*******ADDING-CONTENTS-OF-ROOT-WIDGET******* layout.add_widget(layoutTop) layout.add_widget(layoutMid) #*******CALLING-THE-ROOT-WIDGET******* return layout
def create_sheet(self): character_sheet = TabbedPanel( tab_pos='top_mid', size_hint=(.85,.85), pos_hint={'center_x': .5, 'center_y': .5}, do_default_tab=False) general_tab = GeneralTab( font_name='src/fonts/Enchanted_Land.otf', font_size=24) self.panes.append(general_tab) attributes_tab = AttributesTab( font_name='src/fonts/Enchanted_Land.otf', font_size=24) self.panes.append(attributes_tab) skills_tab = SkillsTab( font_name='src/fonts/Enchanted_Land.otf', font_size=24) self.panes.append(skills_tab) weapon_tab = WeaponTab( font_name='src/fonts/Enchanted_Land.otf', font_size=24) self.panes.append(weapon_tab) armor_tab = ArmorTab( font_name='src/fonts/Enchanted_Land.otf', font_size=24) self.panes.append(armor_tab) spells_tab = self.create_spells() self.panes.append(spells_tab) character_sheet.add_widget(general_tab) character_sheet.add_widget(attributes_tab) #NOTE ADD FEATS TO SKILLS character_sheet.add_widget(skills_tab) character_sheet.add_widget(weapon_tab) character_sheet.add_widget(armor_tab) character_sheet.add_widget(spells_tab) return character_sheet