python类Button()的实例源码

gap21.py 文件源码 项目:GAP 作者: Tileyon 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def unibutton(self, params):
        self.unibuttons.append([])
        if len(params) == 6:
            function = params[5]
        else:
            function = nofunction
        if self.kivy:
            from kivy.uix.button import Button
            self.unibuttons[len(self.unibuttons) - 1] = Button(
            text = params[4],
            size_hint_y = None,
            size_hint_x = None,
            height = params[3] * self.yratio,
            width = params[2] * self.xratio,
            font_size = 17.5 * self.yratio,
            pos = (params[0] * self.xratio, params[1] * self.yratio),
            on_press = function )
            self.root.add_widget(self.unibuttons[len(self.unibuttons) - 1])
        else:
            import ui
            self.unibuttons[len(self.unibuttons) - 1] = ui.Button(frame= \
                (params[0] * self.xratio, (600 - params[1] - \
                params[3]) * self.yratio, \
                params[2] * self.xratio, params[3] * self.yratio), \
                title = params[4])
            self.unibuttons[len(self.unibuttons) - 1].background_color \
                = (0.4,0.4,0.4)
            self.unibuttons[len(self.unibuttons) - 1].action = function
            self.unibuttons[len(self.unibuttons) - 1].height = params[3] * \
                self.xratio
            self.unibuttons[len(self.unibuttons) - 1].width = params[2] * \
                self.yratio
            self.unibuttons[len(self.unibuttons) - 1].tint_color = 'white'
            self.unibuttons[len(self.unibuttons) - 1].font = ('<system>', \
                17.5 * self.yratio)
            self.root.add_subview(self.unibuttons[len(self.unibuttons) - 1])
test.py 文件源码 项目:ui2 作者: controversial 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_Button(self):
        a = ui.Button()
        # Store attributes
        a.title = "Hey, it's a thing!"
        # Encode + decode
        b = ui._view_from_dict(ui2.ui_io._view_to_dict(a), globals(), locals())
        # Check that type and attributes were preserved
        self.assertIsInstance(b, type(a))
        self.assertEqual(a.title, b.title)
Spinner.py 文件源码 项目:ccMVC 作者: polymerchm 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def make_button(name, bg_image_name, frame):
    button = ui.Button(name=name)
    button.frame = frame
    button.bg_color = 'ivory'
    button.border_color = 'black'
    button.border_width = 1
    button.background_image = ui.Image.named(bg_image_name)
    button.enabled = True
    return button
Gestures.py 文件源码 项目:pythonista-gestures 作者: mikaelho 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def _get_recog(self, recog_name, view, internal_action, final_handler):
    view.touch_enabled = True
    button = ui.Button()
    key = str(uuid.uuid4())
    button.name = key
    button.action = internal_action
    self.buttons[key] = button
    self.views[key] = view
    recognizer = ObjCClass(recog_name).alloc().initWithTarget_action_(button, sel('invokeAction:')).autorelease()
    self.recognizers[key] = recognizer
    self.actions[key] = final_handler
    ObjCInstance(view).addGestureRecognizer_(recognizer)
    recognizer.delegate = self._delegate
    return recognizer
File Picker.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def tableview_cell_for_row(self, tv, section, row):
        cell = ui.TableViewCell()
        entry = self.flat_entries[row]
        level = entry.level - 1
        image_view = ui.ImageView(frame=(44 + 20*level, 5, 34, 34))
        label_x = 44+34+8+20*level
        label_w = cell.content_view.bounds.w - label_x - 8
        if entry.subtitle:
            label_frame = (label_x, 0, label_w, 26)
            sub_label = ui.Label(frame=(label_x, 26, label_w, 14))
            sub_label.font = ('<System>', 12)
            sub_label.text = entry.subtitle
            sub_label.text_color = '#999'
            cell.content_view.add_subview(sub_label)
        else:
            label_frame = (label_x, 0, label_w, 44)
        label = ui.Label(frame=label_frame)
        if entry.subtitle:
            label.font = ('<System>', 15)
        else:
            label.font = ('<System>', 18)
        label.text = entry.title
        label.flex = 'W'
        cell.content_view.add_subview(label)
        if entry.leaf and not entry.enabled:
            label.text_color = '#999'
        cell.content_view.add_subview(image_view)
        if not entry.leaf:
            has_children = entry.expanded
            btn = ui.Button(image=ui.Image.named('CollapseFolder' if has_children else 'ExpandFolder'))
            btn.frame = (20*level, 0, 44, 44)
            btn.action = self.expand_dir_action
            cell.content_view.add_subview(btn)
        if entry.icon_name:
            image_view.image = ui.Image.named(entry.icon_name)
        else:
            image_view.image = None
        cell.selectable = entry.enabled
        return cell
SPLView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self, *args, **kwargs):
      ui.View.__init__(self, *args, **kwargs)
      self.pinchgesture_recognizer_target = ui.Button()
      self.pinchgesture_recognizer_target.action = self.did_pinch

      self.pangesture_recognizer_target = ui.Button()
      self.pangesture_recognizer_target.action = self.did_pan

      self.gr_delegate=GRDelegate.alloc().init().autorelease()
      self.recognizers={}
      self_objc = ObjCInstance(self)     
      pinchobjctarget=ObjCInstance(self.pinchgesture_recognizer_target)
      panobjctarget=ObjCInstance(self.pangesture_recognizer_target)

      pinchrecognizer = ObjCClass('UIPinchGestureRecognizer').alloc()
      self.recognizers['pinch'] =         pinchrecognizer.initWithTarget_action_( pinchobjctarget, sel('invokeAction:')).autorelease()


      panrecognizer = ObjCClass('UIPanGestureRecognizer').alloc()
      self.recognizers['pan'] =            panrecognizer.initWithTarget_action_( panobjctarget, sel('invokeAction:')).autorelease()
      self.recognizers['pan'].setMinimumNumberOfTouches_(2)

      for r in self.recognizers.values():
         self_objc.addGestureRecognizer_(r)
         r.setDelegate_(self.gr_delegate)
      self.panx,self.pany,self.sx,self.sy=0,0,1,1
      self.panx0,self.pany0,self.sx0,self.sy0=0,0,1,1
MPLView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self, *args, **kwargs):
      ui.View.__init__(self, *args, **kwargs)
      self.pinchgesture_recognizer_target = ui.Button()
      self.pinchgesture_recognizer_target.action = self.did_pinch

      self.pangesture_recognizer_target = ui.Button()
      self.pangesture_recognizer_target.action = self.did_pan

      self.gr_delegate=GRDelegate.alloc().init().autorelease()
      self.recognizers={}
      self_objc = ObjCInstance(self)     
      pinchobjctarget=ObjCInstance(self.pinchgesture_recognizer_target)
      panobjctarget=ObjCInstance(self.pangesture_recognizer_target)

      pinchrecognizer = ObjCClass('UIPinchGestureRecognizer').alloc()
      self.recognizers['pinch'] =         pinchrecognizer.initWithTarget_action_( pinchobjctarget, sel('invokeAction:')).autorelease()


      panrecognizer = ObjCClass('UIPanGestureRecognizer').alloc()
      self.recognizers['pan'] =            panrecognizer.initWithTarget_action_( panobjctarget, sel('invokeAction:')).autorelease()
      self.recognizers['pan'].setMinimumNumberOfTouches_(2)

      for r in self.recognizers.values():
         self_objc.addGestureRecognizer_(r)
         r.setDelegate_(self.gr_delegate)
      self.panx,self.pany,self.sx,self.sy=0,0,1,1
      self.panx0,self.pany0,self.sx0,self.sy0=0,0,1,1
apphack.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def create_toolbar_button(action,image,index=0,tag=''):
    '''create a button on main toolbar, with action,imagename, index location, and string tagname.  button and action are stored in __persistent_views[index].  tag allows finding view using tb.viewFromTag_(hash(tag)) (old idea)'''
    assert(callable(action))

    tb=get_toolbar(main_view)
    global __persistent_views
    try:
        __persistent_views
    except NameError:
        __persistent_views={}
    #check for existing button in this index and delete if needed
    remove_toolbar_button(index)

    #add new button to the left of the rightbuttons.  index 0 is next to left buttons, index 1 is further left, etc
    #store so it is not cleared.

    btn=ui.Button( frame=(tb.size().width -
    tb.rightItemsWidth()-(index+1)*40,22,40,40))
    btn.flex='L'
    btn.image=ui.Image.named(image)
    btn.action=action
    btn_obj=ObjCInstance(btn)
    btn_obj.tag=hash(tag)
    __persistent_views[index]=(btn,action,tag)
    tb.addSubview_(btn_obj)
    return btn
SkChessView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def make_button(self, title, i):
        button = ui.Button(name=title, title=title.replace('_', ' '))
        # interesting that getattr(self, ...) != self.getattr(...)
        button.action = getattr(self, 'action_' + title.lower(), quit_action)
        #print(title, button.action)
        button.x = 30
        button.y = 105 * (i + 1)
        return button
game_view.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def close_button(self):
        the_button = ui.Button(title='X')
        the_button.x = self.width - the_button.width
        the_button.y = the_button.height / 2
        the_button.action = self.close_action
        the_button.font=('<system-bold>', 20)
        return the_button
Three-Column-Sortable-TableView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def make_buttons(self, name):
        button = ui.Button()
        button.name = name
        button.title = name
        button.border_color = 'blue'
        button.border_width = 1
        button.corner_radius = 3
        button.background_color = self.unselect_color
        button.action = self.btn_action
        self.add_subview(button)
        return button
uiCheckBox.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def _setup_cb(self):
        '''set up encapsulated button as checkbox'''
        tf=ui.Button()
        tf.action=self._button_action
        tf.width=self.width
        tf.height=self.height
        tf.flex='whtblr'
        tf.title=self._get_checkbox_char()
        self.add_subview(tf)
        return tf
KeyboardFrame.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 39 收藏 0 点赞 0 评论 0
def setupkb(self):
         #define keys          
        redokey=key(title='redo',action=self.redoaction)
        undokey=key(title='undo',subkeys=[redokey], action=self.undoaction)
        hidekey=key(title='hide',action=self.hideaction)
        keymap=[key('\t',title='TAB'),key('_'),key('#',['@']),key('<',['<=']),key('>',['>=']),
                key('{'),key('}'),key('['),key(']'),key("'",['"']),key('('),key(')'),
                key(':',[';']), undokey]+[key(str(n)) for n in range(1,9)]+[key('0'),key('+',['%']),key('-'),key('/',['\\n','\\t','\\','/']),key('*'),key('=',['!=']), hidekey]


        #customkb component
        customkb=FlowContainer(frame=(0,self.height-100,self.width,100),flex='')
        customkb.name='customkb'
        self.add_subview(customkb)
        minimizedkb=ui.Button(frame=(0,self.height-15,self.width,15),flex='',bg_color=(.7, .7, .7))
        minimizedkb.action=self.showaction
        minimizedkb.title=u'\u2550'*10
        minimizedkb.name='minimizedkb'
        self.add_subview(minimizedkb)
        customkb.bring_to_front()
        customkb.hidden=True
        for k in keymap:
            customkb.add_subview(k.makeButton())
        customkb.flex='WT'
        customkb.y=self.height-customkb.height

        #contentframe
        content=ui.View(frame=(0,0,self.width,self.height-15))
        content.name='content'
        self.add_subview(content)
        content.send_to_back()
        content.border_color=(0,0,1)
        content.border_width=3
        self.content=content
editmenu.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def did_load(self):
        for s in self['scrollview1'].subviews:
            if isinstance(s,ui.Button):
                #pass
                s.action = self.handlebutton
        type(self)._lastinstance=self
tableobjectview.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self):
        self.schema_v = ui.TableView('grouped')
        self.data_v = ui.TableView()
        self.nbutton = ui.Button(title='Next')
        self.pbutton = ui.Button(title='Prev')
multipanel.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def __init__(self):
        # Init
        self.views = []
        self.curview = None

        self.root = ui.View(name="Multipanel")

        self.close = ui.Button()
        self.close.name = "close"
        self.close.enabled = False
        self.close.image = ui.Image.named("ionicons-close-round-32")
        self.close.action = self.close_tapped
        self.root.add_subview(self.close)
        self.close.frame = self.root.width - 32, 0, 32, 32
        self.close.flex = "LB"

        self.tabs = ui.SegmentedControl()
        self.tabs.name = "tabs"
        self.tabs.enabled = False
        self.tabs.selected_index = -1
        self.tabs.segments = [PLACEHOLDER_TEXT]
        self.tabs.action = self.segment_changed
        self.root.add_subview(self.tabs)
        self.tabs.frame = 0, 0, self.root.width - self.close.width, self.tabs.height
        self.tabs.flex = "WB"

        self.placeholder = ui.View()
        self.placeholder.background_color = "lightgray"

        self.ph_label = ui.Label()
        self.ph_label.font = ("<system-bold>", 24)
        self.ph_label.text_color = "gray"
        self.ph_label.text = "No View Selected"
        self.placeholder.add_subview(self.ph_label)
        self.ph_label.size_to_fit()
        self.ph_label.center = self.placeholder.center
        self.ph_label.flex = "TBLR"

        self.update_view()
caves.py 文件源码 项目:caves 作者: mikaelho 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, control, spec, *args, **kwargs):
    super().__init__(*args, **kwargs)

    self.control = control
    img_view = ui.ImageView(frame=self.bounds)

    img_view.image = ui.Image.named("playfields/caves of soukka.png")
    self.add_subview(img_view)

    self.menu = ui.View(frame=(
      30, self.height/2.1, self.width - 60, self.height/2 - 30
    ), corner_radius=10)
    #self.menu.background_color=(0,0,0,0.7)
    self.add_subview(self.menu)

    (_,_,w,h) = self.menu.frame
    def pick_map(sender):
      self.control.load_map(next_func=self.control.set_map_for_play)
    self.map_btn = ui.Button(title='Pick map', tint_color='white', background_color=self.menu_color, corner_radius=5, action=pick_map)
    self.menu.add_subview(self.map_btn)
    self.map_btn.frame = (0.05*w, 0.05*h, 0.55*w, 50)

    (title, action) = spec[2]
    self.menu_button(title, action, 50, (0.7*w, 0.05*h+25))
    (title, action) = spec[1]
    self.menu_button(title, action, 50, (0.9*w, 0.05*h+25))

    self.icons = {}
    self.small_icons = {}
    for i in range(len(self.control.icon_names)):
      icon =   ui.Image.named(self.control.icon_names[i]).with_rendering_mode(ui.RENDERING_MODE_ORIGINAL)
      small_icon = ui.Image.named(self.control.small_icon_names[i]).with_rendering_mode(ui.RENDERING_MODE_ORIGINAL)
      name = 'player'+str(i)
      self.icons[name] = icon
      self.small_icons[name] = small_icon
      btn = self.menu_color_button(
        name, self.control.colors[i], icon,
        (0.05*w + i*51, 0.25*h))
      if i > 0:
        self.toggle(btn)

    (title, action) = spec[0]
    self.menu_button(title, action, 50, (0.9*w, 0.25*h+25))

    #btn = self.create_button
    #self.set_menu('main', spec)
DropDown.py 文件源码 项目:ccMVC 作者: polymerchm 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self,  frame=(0,0,150,32),
                                        buttonSize = (32,32),
                                        data = "this is a test".split(),
                                        font = None,
                                        initialItem = 0,
                                        offset_eps = 0,
                                        action = None,
                                        fullSize = 300,
                                        name = 'dropdown'):
        self.frame = frame  
        self._position = [ self.frame[x] for x in (0,1)]
        self.smallSize = frame[3]
        self.bg_color = None    
        self.border_width = 0
        self.border_color = 'black'
        self.buttonSize = buttonSize    
        self._data = data           
        self.delegate = _DropDownDelegate(self)
        if action:
            if inspect.isfunction(action) and len(inspect.getargspec(action).args) == 2:
                self.action = action
            else:
                raise TypeError('single argument function') 
        self.tvFrame = (0,0, self.frame[2] - self.buttonSize[0], self.buttonSize[1])
        self.tv = ui.TableView(frame=self.tvFrame)
        self.tv.row_height = self.smallSize
        self.tv.name = 'tableview'
        self.tv.allows_selection = True
        self.tv.delegate = self.tv.data_source = self.delegate
        self.tv.border_color = 'black'
        self.tv.border_width = 1
        self.button = ui.Button(frame = (self.frame[2]-self.buttonSize[0], 0) + self.buttonSize)
        self.button.bg_color = 'white'
        self.button.name = 'button'
        self.button.action = self.onArrow
        self.button.border_width = 1
        self.button.border_color = 'black'
        self.button.image=ui.Image.named('ionicons-arrow-down-b-24')
        self.expanded = False
        self.add_subview(self.tv)
        self.tv.frame = self.tvFrame
        self.add_subview(self.button)
        self.fullSize = fullSize
        self.smallSize = self.frame[3]
        self.offset_eps = offset_eps
        self.name = name
        self._hidden = False
MarkdownView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def create_accessory_toolbar(self):
        from objc_util import ObjCClass, ObjCInstance, sel

        def create_button(label, func):
            button_width = 25
            black = ObjCClass('UIColor').alloc().initWithWhite_alpha_(0.0, 1.0)
            action_button = ui.Button()
            action_button.action = func
            accessory_button = ObjCClass('UIBarButtonItem').alloc().initWithTitle_style_target_action_(label, 0, action_button, sel('invokeAction:'))
            accessory_button.width = button_width
            accessory_button.tintColor = black
            return (action_button, accessory_button)

        vobj = ObjCInstance(self.markup)

        keyboardToolbar = ObjCClass('UIToolbar').alloc().init()

        keyboardToolbar.sizeToFit()

        button_width = 25
        black = ObjCClass('UIColor').alloc().initWithWhite_alpha_(0.0, 1.0)

        # Create the buttons
        # Need to retain references to the buttons used
        # to handle clicks
        (self.indentButton, indentBarButton) = create_button(u'\u21E5', self.indent)

        (self.outdentButton, outdentBarButton) = create_button(u'\u21E4', self.outdent)

        (self.quoteButton, quoteBarButton) = create_button('>', self.block_quote)

        (self.linkButton, linkBarButton) = create_button('[]', self.link)

        #(self.anchorButton, anchorBarButton) = create_button('<>', self.anchor)

        (self.hashButton, hashBarButton) = create_button('#', self.heading)

        (self.numberedButton, numberedBarButton) = create_button('1.', self.numbered_list)

        (self.listButton, listBarButton) = create_button('•', self.unordered_list)

        (self.underscoreButton, underscoreBarButton) = create_button('_', self.insert_underscore)

        (self.backtickButton, backtickBarButton) = create_button('`', self.insert_backtick)

        # Flex between buttons
        f = ObjCClass('UIBarButtonItem').alloc().initWithBarButtonSystemItem_target_action_(5, None, None)

        doneBarButton = ObjCClass('UIBarButtonItem').alloc().initWithBarButtonSystemItem_target_action_(0, vobj, sel('endEditing:')) 

        keyboardToolbar.items = [indentBarButton, f, outdentBarButton, f, quoteBarButton, f, linkBarButton, f, hashBarButton, f, numberedBarButton, f, listBarButton, f, underscoreBarButton, f, backtickBarButton, f, doneBarButton]
        vobj.inputAccessoryView = keyboardToolbar
FlowCreationView.py 文件源码 项目:pythonista-scripts 作者: khilnani 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def tableview_cell_for_row(self, tableview, section, row):
        if row >= self.extraRows:
            element = self.elements[row-self.extraRows]
            cell = ui.TableViewCell('subtitle')
            cell.selectable = False
            cell.text_label.text = element.get_title()
            cell.detail_text_label.text = element.get_description()
            cell.background_color=self.thememanager.main_background_colour
            cell.image_view.image = ui.Image.named(element.get_icon())
            params = element.get_params() or []
            selectable = False
            for p in params:
                if p.display:
                    selectable = True
                    cell.accessory_type = 'disclosure_indicator'
            cell.selectable = selectable
            if self.currentElementNumber >= self.extraRows:
                cell.selectable = False
            if self.currentElementNumber+1 == row:
                cell.background_color = self.thememanager.running_cell_background_colour
                cell.text_label.text_color = self.thememanager.running_cell_text_colour
                cell.detail_text_label.text_color = self.thememanager.running_cell_text_colour
            else:
                cell.background_color = self.thememanager.main_background_colour
                cell.text_label.text_color = self.thememanager.main_text_colour
                cell.detail_text_label.text_color = self.thememanager.main_text_colour
            return cell
        elif row == self.adminRow:
            cell = ui.TableViewCell()
            cell.background_color=self.thememanager.main_background_colour
            cell.selectable = False
            editButton = ui.Button(title='Done' if tableview.editing else 'Edit')
            editButton.width *= 1.4
            editButton.action = swap_edit
            editButton.y = cell.height/2 - editButton.height/2
            editButton.x = cell.width
            cell.add_subview(editButton)
            self.titleButton.y = cell.height/2 - editButton.height/2
            self.titleButton.x = self.titleButton.width/2
            self.titleButton.action = self.change_title
            cell.add_subview(self.titleButton)
            return cell
        elif row == self.typeRow:
            cell = ui.TableViewCell('value1')
            cell.background_color=self.thememanager.main_background_colour
            cell.selectable = True
            cell.text_label.text_color = self.thememanager.main_text_colour
            cell.detail_text_label.text_color = self.thememanager.main_text_colour
            cell.text_label.text = 'Type of Flow'
            cell.detail_text_label.text = self.flowType
            return cell


问题


面经


文章

微信
公众号

扫码关注公众号