示例#1
0
    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()
示例#2
0
    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()
示例#3
0
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))
示例#4
0
文件: dash.py 项目: nervecenter/Dash
	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
示例#5
0
文件: stats.py 项目: phiotr/DysDroid
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)
示例#6
0
    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
示例#7
0
文件: main.py 项目: jcc242/gastracker
    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)
示例#8
0
    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)
示例#9
0
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)
示例#10
0
 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()
示例#11
0
    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()
示例#12
0
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()
示例#13
0
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
示例#14
0
    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]
示例#15
0
    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]
示例#16
0
      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
示例#17
0
    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
示例#18
0
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)
示例#19
0
    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
示例#20
0
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)
示例#21
0
    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)
示例#22
0
文件: main.py 项目: stdgn/kivy-tr
	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
示例#23
0
      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
示例#24
0
    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)
示例#26
0
    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)
示例#27
0
    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)
示例#28
0
    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)
示例#29
0
    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
示例#30
0
    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
示例#31
0
 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
示例#32
0
文件: qma_ui.py 项目: galencm/qma-ui
    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
示例#33
0
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
示例#34
0
    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
示例#35
0
    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)
示例#36
0
    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
示例#37
0
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
示例#38
0
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))
示例#39
0
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)
示例#40
0
    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)
示例#41
0
    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)
示例#42
0
    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
示例#44
0
    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)
示例#45
0
    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
示例#46
0
    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)
示例#47
0
    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
示例#48
0
    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
示例#49
0
	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		
示例#50
0
    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))
示例#51
0
    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)))
示例#52
0
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)
示例#53
0
    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)
示例#54
0
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
示例#55
0
    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 = []
示例#57
0
	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
示例#58
0
    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