예제 #1
0
def test_searchbox_add():
    sb = SearchBox(value='', placeholder="search for something", underlined=True, icon='icon1',
        icon_color='color1', data='data1', on_change=False)
    assert isinstance(sb, pglet.Control)
    assert isinstance(sb, pglet.SearchBox)
    assert sb.get_cmd_str() == ('searchbox data="data1" icon="icon1" iconColor="color1" '
        'onChange="false" placeholder="search for something" underlined="true" value=""'), "Test failed"
예제 #2
0
def test_searchbox_add():
    sb = SearchBox(
        value="",
        placeholder="search for something",
        underlined=True,
        icon="icon1",
        icon_color="color1",
        data="data1",
    )
    assert isinstance(sb, pglet.Control)
    assert isinstance(sb, pglet.SearchBox)
    assert sb.get_cmd_str() == [
        Command(
            indent=0,
            name=None,
            values=["searchbox"],
            attrs={
                "data": "data1",
                "icon": "icon1",
                "iconcolor": "color1",
                "onchange": "false",
                "placeholder": "search for something",
                "underlined": "true",
                "value": "",
            },
            lines=[],
            commands=[],
        )
    ], "Test failed"
예제 #3
0
def searchboxes():
    return Stack(
        gap=20,
        controls=[
            Stack(
                horizontal=True,
                gap=25,
                controls=[
                    Stack(controls=[
                        Text("Default searchbox", size="xLarge"),
                        SearchBox(),
                    ]),
                    Stack(controls=[
                        Text("Underlined SearchBox", size="xLarge"),
                        SearchBox(underlined=True,
                                  placeholder="Search files and folders"),
                    ]),
                ],
            ),
            Stack(
                horizontal=True,
                gap=25,
                controls=[
                    Stack(controls=[
                        Text("Disabled SearchBox", size="xLarge"),
                        SearchBox(disabled=True,
                                  placeholder="Search something..."),
                        SearchBox(
                            underlined=True,
                            disabled=True,
                            placeholder="Search something...",
                        ),
                    ]),
                    Stack(controls=[
                        Text("SearchBox with custom icon", size="xLarge"),
                        SearchBox(
                            placeholder="Filter something by",
                            icon="Filter",
                            icon_color="red",
                        ),
                    ]),
                ],
            ),
            Text("SearchBox with Search, Clear and Escape events",
                 size="xLarge"),
            searchbox_with_search_clear_escape(),
            Text("SearchBox with Change event", size="xLarge"),
            searchbox_with_change(),
        ],
    )
예제 #4
0
def searchbox_with_change():
    def searchbox_changed(e):
        t.value = f'You have searched for {sb.value}.'
        stack.update()

    sb = SearchBox(placeholder='Search something...',
                   on_change=searchbox_changed)
    t = Text()
    stack = Stack(controls=[sb, t])
    return stack
예제 #5
0
def main(page):
    icon_names = load_icon_names()
    page.title = "Icon Browser"
    page.horizontalAlign = 'stretch'
    page.update()

    def search_icons(search_name):
        found_icon_names = []
        if search_name == None:
            found_icon_names = icon_names
        else:
            for icon_name in icon_names:
                if search_name.lower() in icon_name.lower():
                    found_icon_names.append(icon_name)
        return found_icon_names

    def enter_clicked(e):
        icons = get_icons(search_box.value)
        search_result.controls.clear()
        search_result.controls.extend(icons)
        page.update()

    #add stack controls each with Icon and Text
    def get_icons(search_name):
        icons = []
        found_icon_names = search_icons(search_name)
        for icon_name in found_icon_names:
            s = Stack(horizontal_align='center',
                      vertical_align='center',
                      width=100,
                      height=100,
                      border='solid 1px #eee',
                      border_radius='3',
                      controls=[
                          Icon(name=icon_name, size='40', color='#555'),
                          Text(value=icon_name, size='small')
                      ])
            icons.append(s)
        return icons

    icons = get_icons(None)

    search_result = Stack(horizontal=True, wrap=True, controls=icons)
    search_box = SearchBox(id='searchbox',
                           width='100%',
                           placeholder='Search icons',
                           on_search=enter_clicked)
    page.add(search_box, search_result)
예제 #6
0
def searchbox_with_search_clear_escape():
    def enter_clicked(e):
        messages.controls.append(Text(f'You have searched for {sb.value}.'))
        sb.value = ''
        stack.update()

    def clear_or_esc_clicked(e):
        messages.controls.append(Text('You have cleared the box.'))
        stack.update()

    sb = SearchBox(placeholder='Search something and click Enter, X or Esc',
                   on_search=enter_clicked,
                   on_clear=clear_or_esc_clicked)
    messages = Stack()
    stack = Stack(controls=[sb, messages])
    return stack
    def main(self):
        global icon_names
        self.page.update(Page(title="Icon browser"))
        self.page.clean()
        
        def search_icons(search_name):
            found_icon_names = []
            if search_name==None:
                found_icon_names = icon_names
            else:
                for icon_name in icon_names:
                    if search_name.lower() in icon_name.lower():
                        found_icon_names.append(icon_name)
            return found_icon_names

        def searchbox_changed(e):
            search_name = self.page.get_value('searchbox')
            stack_controls = get_stack_controls(search_name)
            self.page.replace(stack_controls, to=result_stack)
            #print('Seachbox changed to ' + search_name)

        def enter_clicked(e):
            search_name = self.page.get_value('searchbox')
            stack_controls = get_stack_controls(search_name)
            self.page.replace(stack_controls, to=result_stack)
            #print('Seachbox changed to ' + search_name)
            
        #add stack controls each with Icon and Text
        def get_stack_controls(search_name):
            stack_controls = []
            found_icon_names = search_icons(search_name)
            for icon_name in found_icon_names:
                s = Stack(controls=[
                    Icon(name = icon_name),
                    Text(value = icon_name)
                ])
                stack_controls.append(s)
            return stack_controls
        
        stack_controls = get_stack_controls(None)
        
        result_stack = Stack(controls=stack_controls)
        self.page.add(SearchBox(id='searchbox', onchange=searchbox_changed, onsearch=enter_clicked, on_change=True), result_stack)

        self.page.wait_close()
예제 #8
0
                                      nav.Item('item1.1.2')
                                  ]),
                         nav.Item('item1.2')
                     ]),
            nav.Item('Item2'),
            nav.Item('Item3'),
        ],
        onchange=navitem_changed,
        onexpand=navitem_expanded,
        oncollapse=navitem_collapsed))

page.add(
    SearchBox(value='',
              placeholder='search for something',
              underlined=True,
              icon='mail',
              icon_color='red',
              data='data',
              on_change=True,
              onchange=searchbox_changed))

page.add(
    Slider(value=1,
           label='To what extend you agree',
           min=0,
           max=10,
           step=1,
           show_value=True,
           value_format='current_value is {value}',
           vertical=False,
           onchange=slider_changed))