def build(self):
root_widget = BoxLayout(orientation='vertical')
output_label = Label(size_hint_y=1)
button_symbols = ('1', '2', '3', '+',
'4', '5', '6', '-',
'7', '8', '9', '.',
'0', '*', '/', '=')
button_grid = GridLayout(cols=4, size_hint_y=2)
for symbol in button_symbols:
button_grid.add_widget(Button(text=symbol))
clear_button = Button(text='clear', size_hint_y=None,
height=100)
root_widget.add_widget(output_label)
root_widget.add_widget(button_grid)
root_widget.add_widget(clear_button)
return root_widget
python类Button()的实例源码
def __init__(self, **kvargs):
super(FileChooser, self).__init__(**kvargs)
box = BoxLayout(orientation="vertical", spacing=10)
filechooser = FileChooserListView()
filechooser.bind(selection=self.select_callback)
box.add_widget(filechooser)
if self.filter == "folder":
box.add_widget(SettingSpacer())
box.add_widget(Button(text=self.text_button_select,
size_hint=(1, .1),
on_press=self.select_callback))
filechooser.filters = [self.is_dir]
elif self.filter == "files":
filechooser.filters = [self.is_file]
self.body = Popup(title=self.title, content=box, size_hint=self.size,
auto_dismiss=self.auto_dismiss,
background=self.background_image)
self.body.bind(on_dismiss=self.dismiss_callback)
self.body.open()
def __init__(self, **kvargs):
super(SelectColor, self).__init__(**kvargs)
box = BoxLayout(orientation="vertical")
select_color = ColorPicker(hex_color=self.default_color)
button_select = Button(text=self.text_button_ok, size_hint=(1, .1))
box.add_widget(select_color)
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(SettingSpacer())
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(button_select)
self.body = Popup(title=self.title, content=box, size_hint=self.size,
background=self.background_image)
self.body.bind(on_dismiss=self.dismiss_callback)
button_select.bind(on_press=lambda color: self.select_callback(
select_color.hex_color), on_release=lambda *args: self.body.dismiss())
self.body.open()
def addToBuyList(self, obj):
if(self.pos_system.getBuyList() == None):
content = Label(text = 'You need to start a new list!')
popup = Popup(
title = 'No Buy List',
content = content,
size_hint = (None, None),
size = (400, 100)
)
# open the popup
popup.open()
return
button = Button(text=obj.text, size_hint_y = None, height = 40)
button.bind(on_press = self.removeFromBuyList)
self.a_buylist.add_widget(button)
self.pos_system.getBuyList().addItem(obj.item)
self.updateTotalPrice()
###
def _build_evaluation_box(self):
evaluation_box = BoxLayout(orientation='horizontal')
positive_button = Button(
text="Positive",
font_size=50,
size_hint=(.5, .5),
background_normal='',
background_color=rgb_to_kivy(0, 102, 0, 1)
)
positive_button.bind(on_release=self.handle_positive_button)
negative_button = Button(
text="Negative",
font_size=50,
size_hint=(.5, .5),
background_normal='',
background_color=rgb_to_kivy(255, 0, 0, 1)
)
negative_button.bind(on_release=self.handle_negative_button)
evaluation_box.add_widget(positive_button)
evaluation_box.add_widget(negative_button)
return evaluation_box
def _reset_layout(self):
reset_layout = RelativeLayout(
size_hint=(None, None),
size=(100, 100),
pos_hint={'right': 1, 'top': 1},
)
history_button = Button(
text="History",
font_size=30,
size_hint=(1, 1),
)
history_button.bind(on_release=self.handle_history_button)
reset_layout.add_widget(history_button)
return reset_layout
def _build_detail_event_box(self, event):
event_layout = BoxLayout(orientation='horizontal')
label_color = rgb_to_kivy(0, 102, 0, 1) if event.evaluation else rgb_to_kivy(255, 0, 0, 1)
# event_eval_text = 'Positive' if event.evaluation else 'Negative'
# event_text = "{} [{}]".format(event.date.strftime("%d/%m/%y %H:%M:%S"), event_eval_text)
event_text = event.date.strftime("%d/%m/%y %H:%M:%S")
event_label = Label(text=event_text, font_size=70, color=label_color, size_hint=(1, 1))
event_rm_button = Button(
text="-",
font_size=50,
size_hint=(.15, 1),
background_normal='',
background_color=rgb_to_kivy(255, 0, 0, 1)
)
handle_rm_with_event = partial(self.handle_rm_event, event)
event_rm_button.bind(on_release=handle_rm_with_event)
event_layout.add_widget(event_label)
event_layout.add_widget(event_rm_button)
return event_layout
def __init__(self, auth_token, **kwargs):
super(CloudCBScreen, self).__init__(**kwargs)
self.header = {'Authorization': "Basic %s" % auth_token}
self.url = SERVER_URI + 'copy-paste/'
self.old_text = Clipboard.paste()
self.cloud_clip = TextInput(text="Fetching...")
layout = BoxLayout(orientation='vertical')
layout.add_widget(Label(text='Cloud Clipboard'))
layout.add_widget(Label(text='Current text on clipboard:'))
layout.add_widget(self.cloud_clip)
layout.add_widget(Button(text='Refresh', on_press=self.download))
layout.add_widget(Label(text='Earlier text on your clipboard:'))
layout.add_widget(TextInput(text=self.old_text))
layout.add_widget(Button(text='Update Cloud Clipboard with this text', on_press=self.upload))
self.add_widget(layout)
self.download()
def new_button(self):
a_caption = 'Button' + '{:02d}'.format(self.count_objs)
self.count_objs += 1
mypage.unibutton((40, 80, 80, 40, a_caption))
a_button = mypage.unibuttons [-1]
a_button.color = a_button.background_color
if mypage.kivy:
a_button.bind(on_touch_move=self.touch_move)
a_button.bind(on_touch_down=self.touch_down)
else:
a_button.touch_enabled = False
a_button.color = a_button.background_color
a_button.pos = (a_button.x, a_button.y)
self.new_objs.append(a_button)
def new_button(self):
a_caption = 'Button' + '{:02d}'.format(self.count_objs)
self.count_objs += 1
mypage.unibutton((40, 80, 80, 40, a_caption))
a_button = mypage.unibuttons [-1]
a_button.color = a_button.background_color
if mypage.kivy:
a_button.bind(on_touch_move=self.touch_move)
a_button.bind(on_touch_down=self.touch_down)
else:
a_button.touch_enabled = False
a_button.color = a_button.background_color
a_button.pos = (a_button.x, a_button.y)
self.new_objs.append(a_button)
def build(self):
floater = FloatLayout()
logo = Image(source='AutoPen.png', pos_hint={'center_x': 0.5, 'center_y': .6})
spiderman = Label(
text='[size=24][i]With Great Power comes Great Responsibility[/i][/size]',
markup=True,
pos_hint={'center_x': 0.5, 'center_y': .2})
enter = Button(text='enter', size_hint=(0.2,0.1), pos_hint={'center_x': 0.5, 'center_y': .1})
floater.add_widget(logo)
floater.add_widget(spiderman)
floater.add_widget(enter)
return floater
def __init__(self, app, **kwargs):
img = Image('crop/overlay_gradient_POT.png')
img.texture.wrap = "repeat"
self.texture = img.texture
self.app = app
super(Overlay, self).__init__(**kwargs)
self.app.btnStart = Button(text='', size_hint=(.4,.07), pos_hint={"right":.57, "y":.02}, opacity=0, markup=True, background_color=(1,1,1, .3))
self.app.insertStrings.append((self.app.btnStart, 'STR_START'))
self.app.btnPause = Button(text='', size_hint=(.4,.07),pos_hint={"right":.99, "y":.02}, opacity=0, markup=True, background_color=(1,1,1, .3))
self.app.insertStrings.append((self.app.btnPause, 'STR_PAUSE'))
self.app.btnStart.bind(on_press=self.app.startgame)
self.app.btnPause.bind(on_press=self.app.pausegame)
self.add_widget(self.app.btnStart)
self.add_widget(self.app.btnPause)
self.add_widget(Arrow(size=(47,97), pos_hint={"center_y":0.98, "x":0}))
self.add_widget(Players(size_hint_x=0.85, pos_hint=self.pos_hint, opacity=0))
self.dposStorage = [0, ]
self.trueSizeHint = 0
def ReAddButtons(self,instance = None):
global UPLOADBUTTON
global DOWNLOADBUTTON
global clientSide
global serverSide
UPLOADBUTTON = Button(text='UPLOAD', size_hint_y=None, height=50, on_press = self.UploadFile)
self.add_widget(UPLOADBUTTON)
DOWNLOADBUTTON = Button(text='DOWNLOAD', on_press=self.DownloadFile, size_hint_y=None, height=50)
self.add_widget(DOWNLOADBUTTON)
clientSide = TextInput(hint_text = "New File Name (SERVER)", size_hint_y = None, height = 50)
self.add_widget(clientSide)
serverSide = TextInput(hint_text = "Create/Rename(SERVER)", size_hint_y = None, height = 50)
self.add_widget(serverSide)
def onGoTo(self):
if self.loaded == 'Yes':
popup = BoxLayout(
orientation='vertical',
size=self.size,
pos=self.pos)
self.goto_popup = Popup(title='Go To' +
' (1~' +
str(len(self.data_view)) +
')', content=popup, size_hint=(0.9, 0.25), auto_dismiss=False)
self.goto_textinput = TextInput()
cancel = Button(text='Cancel', on_release=self.dismiss_goto_popup)
ok = Button(text='Ok', on_release=self.goto_ok)
buttons = BoxLayout(size_hint_y=None, height=self.height / 20)
buttons.add_widget(cancel)
buttons.add_widget(ok)
popup.add_widget(self.goto_textinput)
popup.add_widget(buttons)
self.goto_popup.open()
def __init__(self, **kvargs):
super(CDialog, self).__init__(**kvargs)
box = BoxLayout(orientation='vertical')
select_color = ColorPicker(hex_color=self.default_color)
button_select = Button(
text=self.text_button_ok, size_hint=(1, .1),
background_normal=self.background_image_buttons[0],
background_down=self.background_image_shadows[0]
)
box.add_widget(select_color)
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(SettingSpacer())
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(button_select)
button_select.bind(
on_press=lambda color: self.events_callback(select_color.hex_color),
on_release=lambda *args: self.dismiss()
)
self.content = box
self.open()
def __init__(self, client):
# TODO handle connection errors properly
self.client = client
self.layout = GridLayout(cols = 2, pos_hint={'x': 0, 'y': 0}, size_hint=(1, 0.1))
self.client.layout.add_widget(self.layout, index = 1000)
self.client.bind('connected', self.connected)
self.client.bind('loaded', self.loaded)
self.client.bind('registered', self.registered)
if self.client.config.get('connection', 'autoconnect') == 'yes':
self.auto = True
self.client.connect(self.client.config.get('connection', 'server'))
else:
self.auto = False
self.server_input = TextInput(text = self.client.config.get('connection', 'server'))
self.server_button = Button(text = 'Connect', size_hint = (0.25, 1))
self.server_button.bind(on_press = self.do_connect)
self.layout.add_widget(self.server_input)
self.layout.add_widget(self.server_button)
def update_dialog(self, cur_build, upd_build):
popup = Popup(title='Update', content=ScrollView(), size_hint=(0.8,None), height=cm(5))
grid = GridLayout(cols=1, spacing=0, size_hint_y=None)
grid.bind(minimum_height= grid.setter('height'))
con = StackLayout()
grid.add_widget(con)
popup.content.add_widget(grid)
lbl1 = Label(text='Current build is %s' % (cur_build), size_hint_y=None, height=cm(1))
lbl2 = Label(text='Build %s available' % (upd_build), size_hint_y=None, height=cm(1))
btn1 = Button(text='Cancel', size_hint=(0.5, None), height=cm(1))
btn2 = Button(text='Update', size_hint=(0.5, None), height=cm(1))
btn1.bind(on_release=popup.dismiss)
btn2.bind(on_release=lambda x: {self.update(), popup.dismiss()})
for x in (lbl1, lbl2, btn1, btn2):
con.add_widget(x)
popup.open()
def update_dialog(self, cur_build, upd_build):
popup = Popup(title='Update', content=ScrollView(), size_hint=(0.8,None), height=cm(5))
grid = GridLayout(cols=1, spacing=0, size_hint_y=None)
grid.bind(minimum_height= grid.setter('height'))
con = StackLayout()
grid.add_widget(con)
popup.content.add_widget(grid)
lbl1 = Label(text='Current build is %s' % (cur_build), size_hint_y=None, height=cm(1))
lbl2 = Label(text='Build %s available' % (upd_build), size_hint_y=None, height=cm(1))
btn1 = Button(text='Cancel', size_hint=(0.5, None), height=cm(1))
btn2 = Button(text='Update', size_hint=(0.5, None), height=cm(1))
btn1.bind(on_release=popup.dismiss)
btn2.bind(on_release=lambda x: {self.update(), popup.dismiss()})
for x in (lbl1, lbl2, btn1, btn2):
con.add_widget(x)
popup.open()
def __init__(self, target, **kwargs):
super(BattleMenuState, self).__init__(target, **kwargs)
print('battle menu state here, how ya doin', self, target)
overlay = App.get_running_app().overlay
self.move_button = Button(text='Move', on_release=lambda dt: self.change(SelectMoveState))
self.attack_button = Button(text='Attack', on_release=lambda dt: self.change(SelectAttackState))
self.wait_button = Button(text='Wait', on_release=lambda dt: self.change(TurnEnd))
menu = GridLayout(cols=1, size_hint=(None, None), row_force_default=True, row_default_height=40)
menu.width = dp(100)
menu.height = menu.minimum_height
buttons = [self.move_button, self.attack_button, self.wait_button]
for button in buttons:
menu.add_widget(button)
menu.y = dp((Window.height / 2) + (menu.height / 2))
menu.x = dp(40)
self.menu = menu
overlay.add_widget(self.menu)
self.target.game.set_focus_target(self.target)
def __init__(self, **kvargs):
super(CDialog, self).__init__(**kvargs)
box = BoxLayout(orientation='vertical')
select_color = ColorPicker(hex_color=self.default_color)
button_select = Button(
text=self.text_button_ok, size_hint=(1, .1),
background_normal=self.background_image_buttons[0],
background_down=self.background_image_shadows[0],
background_color=choice(self.background_color_buttons)
)
box.add_widget(select_color)
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(SettingSpacer())
box.add_widget(Widget(size_hint=(None, .02)))
box.add_widget(button_select)
button_select.bind(
on_press=lambda color: self.events_callback(select_color.hex_color),
on_release=lambda *args: self.dismiss()
)
self.content = box
self.open()
def __init__(self, **kwargs):
super(RootWidget, self).__init__(cols=2)
self.btn1=Button(text="Btn1",size_hint = (0.5, 0.5))
layout = AnchorLayout(anchor_x='center', anchor_y='center')
layout.add_widget(self.btn1)
self.add_widget(layout)
self.btn2=Button(text="Btn2",size_hint = (0.5, 0.5))
layout2 = AnchorLayout(anchor_x='center', anchor_y='center')
layout2.add_widget(self.btn2)
self.add_widget(layout2)
self.btn3=Button(text="Btn3",size_hint = (0.5, 0.5))
layout3 = AnchorLayout(anchor_x='center', anchor_y='center')
layout3.add_widget(self.btn3)
self.add_widget(layout3)
self.btn4=Button(text="Btn4",size_hint = (0.5, 0.5))
layout4 = AnchorLayout(anchor_x='center', anchor_y='center')
layout4.add_widget(self.btn4)
self.add_widget(layout4)
def build(self): # building the app
parent = Game()
parent.serve_car()
Clock.schedule_interval(parent.update, 1.0 / 60.0)
self.painter = MyPaintWidget()
clearbtn = Button(text='clear')
savebtn = Button(text='save',pos=(parent.width,0))
loadbtn = Button(text='load',pos=(2*parent.width,0))
clearbtn.bind(on_release=self.clear_canvas)
savebtn.bind(on_release=self.save)
loadbtn.bind(on_release=self.load)
parent.add_widget(self.painter)
parent.add_widget(clearbtn)
parent.add_widget(savebtn)
parent.add_widget(loadbtn)
return parent
def desktop_warning(self):
layout = BoxLayout(orientation='vertical')
layout.add_widget(Label(text='KivMob will not display ads on ' +\
'nonmobile platforms. You must build an ' +\
'Android project to demo ads. (iOS not yet ' +\
'supported)',
size_hint_y=1,
text_size=(250, None),
halign='left',
valign='middle'))
button_layout = BoxLayout()
button1=Button(text="Open Build Steps", size_hint=(0.8, 0.2))
button1.bind(on_release = lambda x :
webbrowser.open("https://www.google.com"))
button_layout.add_widget(button1)
button2=Button(text="Close", size_hint=(0.8, 0.2))
button2.bind(on_release = lambda x : popup.dismiss())
button_layout.add_widget(button2)
layout.add_widget(button_layout)
popup = Popup(title='KivMob Demo Alert',
content=layout,
size_hint=(0.9, 0.9))
popup.open()
def interstitial_warning(self):
layout = BoxLayout(orientation='vertical')
layout.add_widget(Label(text="Ad has not loaded. " +\
"Wait a few seconds and then " +\
"try again.",
size_hint_y=1,
text_size=(250, None),
halign='left',
valign='middle'))
button_layout = BoxLayout()
close=Button(text="Close", size_hint=(0.8, 0.2))
close.bind(on_release = lambda x : popup.dismiss())
button_layout.add_widget(close)
layout.add_widget(button_layout)
popup = Popup(title='KivMob Demo Alert',
content=layout,
size_hint=(0.9, 0.9))
popup.open()
def build(self):
return Button(text="Press Me!",
on_press=self.show_progress_download)
def build(self):
return Button(text="Press me!", on_press=self.show)
def build(self):
return Button(text="Press me!", on_release=self.show_manager)
def __init__(self, **kvargs):
super(ProgressLoad, self).__init__(**kvargs)
self.orientation = "vertical"
self.padding = 20
self.KProgress = kvargs.get("KProgress")
self.label_one = Label(text="", size_hint=(1, .1), markup=True)
self.label_two = Label(text="", size_hint=(1, .1), markup=True)
self.progress_load = self.KProgress()
self.button_cancel = \
Button(text="Cancel", on_press=self.events_callback,
size_hint=(1, .2))
self.label_one.bind(
size=lambda *args: self._update_text_size(args))
self.label_two.bind(
size=lambda *args: self._update_text_size(args))
self.add_widget(self.label_one)
self.add_widget(self.label_two)
self.add_widget(Widget(size_hint=(None, .02)))
self.add_widget(SettingSpacer())
self.add_widget(Widget(size_hint=(None, .02)))
self.add_widget(self.progress_load)
self.add_widget(Widget(size_hint=(None, .3)))
self.add_widget(SettingSpacer())
self.add_widget(Widget(size_hint=(None, .02)))
self.add_widget(self.button_cancel)
self.progress_load.min = 0
self.progress_load.max = 100
self.progress_load.bar_value = 0
self.progress_load.spacing_widget = 2
self.progress_load.height_widget = 1
self.progress_load.color = "#ff7f32"
self.progress_load.background_color = "#2fbfe0"
self.progress_load.border_color = "#2fbfe0"
def build(self):
return Button(text="Press Me!",
on_press=self.show_progress_download)
def build(self):
button = Button(text="Press me!")
button.bind(on_release=self.show_dialog)
return button