def __init__(self, **kwargs): super().__init__(**kwargs) self.orientation = 'vertical' # simple label label1 = Label() label1.text = 'Hello Florian, \nWhat\'s up ?' label1.font_size = 42 label1.bold = True label1.underline = True label1.halign = 'center' label1.color = (0, 1, 0, 1) self.add_widget(label1) # markup text label2 = Label() label2.text = '[size=30]I try to [u]code[/u] a [b]kivy app[/b] ![/size]' label2.halign = 'center' label2.markup = True label2.color = (0, 0, 1, 1) self.add_widget(label2) # unicode text label3 = Label() label3.text = 'هل يمكن تأجير عربات للأطفال؟' label3.font_name = 'DejaVuSans' self.add_widget(label3) # Icons text label4 = Label() label4.font_size = 60 label4.text = '\uF00A' label4.font_name = 'Icons' self.add_widget(label4)
def refresh(self): if self.status_display: self.status_display.text = self.log.archive[-1]['Message'] if self.visible: msgs = self.ids['msglist'] msgs.clear_widgets() num_msg = min(self.display_limit,len(self.log.archive)) #tst = SizedLabel(text='check') #print tst.size #print Window.width #msgs.width = Window.width #msgs.height = num_msg*40 #msgs.width = Window.width w=Window.width for i in range(num_msg): txt = Label(text=str(self.log.archive[i]['Time']),size_hint=[None,None], size = [w/5.,50]) txt.text_size = txt.size txt.halign = 'right'#text_size = txt.size txt.valign = 'top' msgs.add_widget(txt) msg = Label(text=self.log.archive[i]['Message'],size_hint=[None,None], size = [3*w/5.,50]) msg.text_size = msg.size msg.halign = 'left' msg.valign = 'top' msgs.add_widget(msg)
def __init__(self, data, **kwargs): super(DataGridRow, self).__init__(**kwargs) self.index = kwargs.get('index') self.cells = [] self.listWidth = kwargs.get('listWidth') for colIndex in range(0, self.cols): cell = None # label cell if data[colIndex]['type'] == 'Label': cell = Label() cell.valign = 'middle' cell.halign = 'center' # border lable cell elif data[colIndex]['type'] == 'BorderLabel': cell = BorderLabel() cell.valign = 'middle' cell.halign = 'center' if data[colIndex].get('borders'): cell.borders = data[colIndex]['borders'] else: cell.borders = (.5, 'solid', (1, 1, 1, 0.3)) # button cell define elif data[colIndex]['type'] == 'Button': self.bgColorProperty = Color(1, 1, 1, 0) cell = Button() if data[colIndex].get('callback'): callback = data[colIndex].get('callback') param_kwargs = data[colIndex].get('params') if not param_kwargs: param_kwargs = {} cell.bind(on_press=partial(callback, **param_kwargs)) # border button cell define elif data[colIndex]['type'] == 'BorderButton': self.bgColorProperty = Color(1, 1, 1, 0) cell = BorderButton() if data[colIndex].get('borders'): cell.borders = data[colIndex]['borders'] else: cell.borders = (.5, 'solid', (1, 1, 1, 0.3)) if data[colIndex].get('callback'): callback = data[colIndex].get('callback') param_kwargs = data[colIndex].get('params') if not param_kwargs: param_kwargs = {} cell.bind(on_press=partial(callback, **param_kwargs)) cell.size_hint = (None, 1) cell.text = data[colIndex]['text'] cell.width = self.listWidth[colIndex] self.add_widget(cell) self.cells.append(cell) with self.canvas.before: self.bgColor = Color(rgba=self.bgColorProperty.rgba) self.rect = Rectangle(pos=self.center, size=(self.width / 2., self.height / 2.)) self.bind(pos=self.updateRect, size=self.updateRect, bgColorProperty=self.updateRect)
def __init__(self, data, **kwargs): super(DataGridRow, self).__init__(**kwargs) self.index = kwargs.get('index'); self.cells = [] self.listWidth = kwargs.get('listWidth'); for colIndex in range(0, self.cols): cell = None # label cell if data[colIndex]['type'] == 'Label': cell = Label() cell.valign = 'middle' cell.halign = 'center' # border lable cell elif data[colIndex]['type'] == 'BorderLabel': cell = BorderLabel() cell.valign = 'middle' cell.halign = 'center' if data[colIndex].get('borders'): cell.borders= data[colIndex]['borders'] else: cell.borders= (.5, 'solid', (1,1,1,0.3)) # button cell define elif data[colIndex]['type'] == 'Button': self.bgColorProperty = Color(1,1,1,0) cell = Button() if data[colIndex].get('callback'): callback = data[colIndex].get('callback') param_kwargs = data[colIndex].get('params') if not param_kwargs: param_kwargs = {} cell.bind(on_press=partial(callback, **param_kwargs)) # border button cell define elif data[colIndex]['type'] == 'BorderButton': self.bgColorProperty = Color(1,1,1,0) cell = BorderButton() if data[colIndex].get('borders'): cell.borders= data[colIndex]['borders'] else: cell.borders= (.5, 'solid', (1,1,1,0.3)) if data[colIndex].get('callback'): callback = data[colIndex].get('callback') param_kwargs = data[colIndex].get('params') if not param_kwargs: param_kwargs = {} cell.bind(on_press=partial(callback, **param_kwargs)) cell.size_hint = (None, 1) cell.text = data[colIndex]['text'] cell.width = self.listWidth[colIndex] self.add_widget(cell) self.cells.append(cell) with self.canvas.before: self.bgColor = Color(rgba=self.bgColorProperty.rgba) self.rect = Rectangle(pos=self.center, size=(self.width/2., self.height/2.)) self.bind(pos=self.updateRect,size=self.updateRect,bgColorProperty=self.updateRect)
def __init__(self,**kwargs): super(Medicine,self).__init__(**kwargs) self.active_checkboxes = [] self.checkboxeslist = [] self.scrollsize = fullapp.size[0]*0.86,fullapp.size[1]*0.57 self.scrollpos = fullapp.size[0]*0.07,fullapp.size[1]*0.34 self.canvas.add(Rectangle(size=fullapp.size,pos=fullapp.pos,source="MainBackgroundWhiter.png")) self.add_widget(MenuButton()) rect = Rectangle(size=(fullapp.size[0],fullapp.size[1]*0.236),pos=fullapp.pos,source='FrontForScroll.png') self.canvas.add(rect) self.canvas.add(Color(0.5,0.5,0.5,1)) self.canvas.add(Rectangle(size=self.scrollsize,pos=self.scrollpos)) MedScroll = ScrollView() MedScroll.size_hint = (None,None) MedScroll.size = self.scrollsize MedScroll.pos = self.scrollpos MedBox = Widget() MedBox.size_of_drug = (self.scrollsize[0],fullapp.size[1]*0.1) MedBox.spacing = fullapp.size[1]*0.01 MedBox.size = (self.scrollsize[0],(MedBox.spacing+MedBox.size_of_drug[1])*len(IlnessBase.Medicine)-MedBox.spacing) MedBox.size_hint_y = None for i in range(len(IlnessBase.Medicine)): text = Label(color=(1,1,1,1),markup=True) text.text = IlnessBase.Medicine[i][:IlnessBase.Medicine[i].find(':')] + ' ' + '[i][size=11][color=272727]' + 'ATX num ' + IlnessBase.Medicine[i][IlnessBase.Medicine[i].find(':')+1:] + '[/i][/size][/color]' text.text_size = MedBox.size_of_drug text.text_size[0] -= MedBox.size_of_drug[1] text.halign = 'left' text.valign = 'middle' text.pos = (MedBox.size_of_drug[0]/4.3,i*(MedBox.spacing+MedBox.size_of_drug[1])-MedBox.size_of_drug[1]/2) b = Button(size=MedBox.size_of_drug,pos=(0,i*(MedBox.spacing+MedBox.size_of_drug[1]))) b.bind(on_press=self.on_button) b.add_widget(text) checkbox = CheckBox(size=(MedBox.size_of_drug[1],MedBox.size_of_drug[1]),pos = (MedBox.size_of_drug[0]-MedBox.size_of_drug[1],i*(MedBox.spacing+MedBox.size_of_drug[1]))) checkbox.num = i checkbox.bind(active=self.on_checkbox) b.add_widget(checkbox) self.checkboxeslist.append(checkbox) b.ATXNum = IlnessBase.Medicine[i][IlnessBase.Medicine[i].find(':')+1:] MedBox.add_widget(b) TopLabel = Label(bold=True,size_hint=(None,None),text='check prep:',font_size=fullapp.size[1]*0.036,color = (0,0,0,1),pos = (fullapp.size[0]*0.34,fullapp.size[1]*0.85)) self.SomeWidget = Widget(pos=(0,0),size_hint=(None,None),size = fullapp.size) CancelButton = Button(text = 'exit',font_size=fullapp.size[1]*0.022,size_hint=(None,None),size=(MedBox.size_of_drug[0]/2.01,fullapp.size[1]*0.05), pos = (self.scrollpos[0],self.scrollpos[1]-fullapp.size[1]*0.05-1),background_color = (0.3,0.3,0.9,1),on_press=self.on_cancel) OkButton = Button(text = 'chose',font_size=fullapp.size[1]*0.022,size_hint=(None,None),size=(MedBox.size_of_drug[0]/2.01,fullapp.size[1]*0.05), pos = (self.scrollpos[0]+MedBox.size_of_drug[0]/2+1,self.scrollpos[1]-fullapp.size[1]*0.05-1),background_color = (0.3,0.3,0.9,1),on_press=self.on_choose) self.SomeWidget.add_widget(CancelButton) self.SomeWidget.add_widget(OkButton) self.SomeWidget.opacity=0 MedScroll.add_widget(MedBox) self.add_widget(self.SomeWidget) self.add_widget(MedScroll) self.add_widget(TopLabel)
def markDestination(self, destination): ''' Takes in a parking garage object called destination Gets the location of the destination and places a map marker on top of it Parameters: destination - ParkingGarage object Returns: coords - tuple with the coordinates of the map marker ''' if not isinstance(destination, ParkingGarage): pop = Popup(title="Error", content=Label(text="No Destination Input"), size_hint=(.2, .2)) pop.open() return #Get the coordinates of the destination coder = GoogleGeocoder("AIzaSyDPOAePgFbDCBU0rsOdvWX66C2CPUB2CZM") g = coder.get(destination.getLocation()) coords = (g[0].geometry.location.lat, g[0].geometry.location.lng) #Create a marker that holds information on the parking garage bub = Bubble(size_hint=(None, None), size=(200, 50), arrow_pos='bottom_left') lab = Label(text=(" " + destination.getName()), text_size=(self.width, None)) lab.height = lab.texture_size[1] lab.halign = 'center' bub.add_widget(lab) m1 = MapMarkerPopup(lat=coords[0], lon=coords[1], placeholder=bub) #Mark the map and return the coordinates of the marker self.ids.map1.add_marker(m1) return coords
def change_txti(self, instance, value=False): if (len(self.sel_txti.text) >= 26): self.sel_txti.text = instance.text[:25] try: Popup except: from kivy.uix.popup import Popup alert = FloatLayout() btn = Button(text="Ok", size_hint=(.4, .2), on_press=self.dismiss_popup) btn.pos_hint = {"x": 0.5 - (btn.size_hint[0] / 2), "y": 0.05} alert_msg = Label(text="O nome deve ter no\nmáximo 25 characters") alert_msg.halign = 'center' alert_msg.valign = 'middle' alert_msg.font_size = sp(17 * Window.size[1] / 600) alert_msg.size_hint = (0.4, 0.15) alert_msg.pos_hint = { "x": 0.5 - (alert_msg.size_hint[0] / 2), "y": 0.2 + btn.size_hint[1] + btn.pos_hint["y"] } alert_msg.background_color = (0.5, 1, 0.5, 0.5) alert.add_widget(alert_msg) alert.add_widget(btn) self._popup = Popup(title="Configurações", content=alert, size_hint=(0.5, 0.5)) self._popup.open() else: pass
def constroi_linha(self, lista): nome, *args = lista n = 1 spacing = "10sp" padding = [f"{i}sp" for i in [0, 0, 10, 0]] grid = GridLayout(cols=1, size_hint_y=None) grid.bind(minimum_height=grid.setter("height")) label = Label(text=nome) label.size_hint_y = None label.height = self.height * .1 label.font_size = self.fonte_padrao * n label.valign = "center" label.halign = "center" label.text_size = [self.width * .9, self.height * .9] grid.add_widget(label) #grid.ids["descricao"] = label for valor in args: label = Label(text=valor) label.size_hint_y = .1 label.halign = label.valign = "center" label.text = valor label.height = self.height * .1 label.font_size = self.fonte_padrao * .9 label.text_size = [self.width * .9, self.height * .9] grid.add_widget(label) #grid.ids["valor"] = label #self.ids[f"{self.nome_tela}_campo_{self.n}"] = grid return grid
def locked_pop_up(self): #A LOT OF LITERAL from kivy.uix.label import Label myBox=BoxLayout() myBox.orientation='vertical' myLabel=Label() myLabel.text='Clear previous stage\nto unlock this level' myLabel.valign='middle' myLabel.halign='center' button=Button() button.text='Dismiss' button.size_hint_y=0.3 myBox.add_widget(myLabel) myBox.add_widget(button) popUp=Popup() popUp.title='Level locked' popUp.content=myBox popUp.size_hint=(0.7,0.5) button.bind(on_release=popUp.dismiss) return popUp
def __init__(self, game, **kwargs): super().__init__(**kwargs) # self.width = 300 self.size_hint_y = None self.height = 50 self.game = game game_description = f"Spel versus {game.my_opponent}." if game.over: game_description += f"\nAfgelopen! Resultaat: {game.over_reason}" else: if game.my_turn: game_description += " Mijn zet!" else: game_description += " Tegenstander aan zet." # Label for game game_label = Label(text=game_description) game_label.halign = 'left' game_label.valign = 'top' game_label.padding = [10, 10] # game_label.size = game_label.texture_size self.add_widget(game_label) # Play button, beside label play_button = Button(text="Naar spel") play_button.size_hint = 0.2, 1 play_button.bind(on_press=self.goto_game) self.add_widget(play_button)
def build(self): layout = GridLayout(id='layout', cols=1, spacing=20, size_hint_y=None) layout.bind(minimum_height=layout.setter('height')) layout.add_widget(Label(text='')) layout.add_widget(Label(text='')) layout.add_widget(Label(text='')) layout.add_widget(Label(text='')) layout.add_widget(Label(text='')) with io.open('data/programsw.txt', 'r', encoding='utf-8') as file: for line in file: if line != '\n': x = eval(line) string = '' if 'dia' in x: btn = Label( text=str('[b][color=#000000]' + 'Dia:' + str(x['dia']) + '[/color][/b]' + '\n'), markup=True) layout.add_widget(btn) elif 'periodo' in x: if 'horario' in x: string = str('[b][color=#000000]' + ' ' + x['periodo'] + '\n' + x['horario'] + '[/color][/b]' + '\n') else: string = str('[b][color=#000000]' + x['periodo'] + '[/color][/b]' + '\n') btn = Label(text=string, markup=True) layout.add_widget(btn) else: if 'evento' in x: string = str(x['evento']) btn = Button(text=str("[color=333333]" + string + "[/color]"), size_hint_y=None, height=40, background_color=(0, 0, 0, .1), markup=True) btn.bind(on_press=partial(self.show_popup, x)) btn.halign = 'center' btn.text_size = (Window.height - 100, None) layout.add_widget(btn) btn = Label(text='\n\n') layout.add_widget(btn) btn = Label(text='') layout.add_widget(btn) root = ScrollView(size_hint=(1, None), size=(Window.width, Window.height)) root.add_widget(layout) self.add_widget(root)
def __init__(self, **kwargs): super().__init__(**kwargs) # Lista de caracteres (texto dos botoes) grid_numeros = [7, 8, 9, 4, 5, 6, 1, 2, 3, ".", 0, "%"] grid_simbolos = [ '(', ')', 'π', '-', '+', '√', 'x', '÷', 'x²', 'C', 'AC', ' mod ' ] # self.numeros = self.ids.numeros - basicamente estou dizendo que a variavel # numeros se recebe a id numeros da gridlayoult do arquivo kv. E assim funciona com os ids self.numeros = self.ids.numeros self.simbolos = self.ids.simbolos # Criação dos botões a partir da lista de caracteres grid_numeros for num in grid_numeros: botao = Button(text=str(num), background_normal='', background_color=(0.047, 0.553, 0.588, 1.0)) botao.bind(on_release=self.mostra_conta) self.numeros.add_widget(botao) # Criação dos botões a partir da lista de caracteres grid_simbolos for simbolo in grid_simbolos: botao = Button(text=str(simbolo), background_normal='', background_color=(0.937, 0.643, 0.404, 1.0)) botao.bind(on_release=self.mostra_conta) self.simbolos.add_widget(botao) # Criando um botão para o sinal de igual igual = Button(text="=", background_color=(0.992, 0.275, 0.592, 1.0), background_normal='', font_size=26, size_hint_x=0.74) igual.bind(on_release=self.expressao) self.ids.status_bar.add_widget(igual) mensagem = Label( text= 'Entre em contato pelo e-mail:\[email protected]') mensagem.halign = 'center' self.ids.status_bar.add_widget(mensagem) logo = Image(source='/home/renan/Downloads/op.jpg', size=self.size) self.ids.centro.add_widget(logo)
def addHeaders(self,grid): """Funcion que crea todas las celdas para utilizarse como encabezado de los grids""" grid.bind(minimum_height=grid.setter('height'), minimum_width=grid.setter('width')) grid.filas += 1 for col in range(grid.columnas): hdr = GridHeader() hdr.id = "hdr_col{0}".format(col) hdr.width = grid.colSizes[col] clabel = Label() clabel.padding=[5,5] clabel.text='[color=ffffff][b][size=16]{0}[/size][/b][/color]'.format(grid.colHeaders[col]) clabel.halign='center' clabel.valign='middle' clabel.markup=True clabel.text_size=hdr.size hdr.add_widget(clabel) grid.add_widget(hdr)
def getCellLabel(self,fila,columna,Texto,Halign='left',Disabled = False,Size=200,Tipo="txt",Valign='middle'): """Funcion que devuelve una celda completa para manejo de etiquitas""" cell = GridRow() cell.id = "row{0}_col{1}".format(fila,columna) if Tipo == "key": cell.key = Texto cell.width = Size clabel = Label() clabel.id=Tipo clabel.padding=[5,5] clabel.text='[color=000000]{0}[/color]'.format(Texto) clabel.halign=Halign clabel.valign=Valign clabel.disabled=Disabled clabel.markup=True clabel.text_size=cell.size cell.add_widget(clabel) return cell
def gerarTelaDietaAtual(self,*args): if db.getConfig('DietaAlterada') == '1': auxBoxLayout = self.ids['scDietaDia_Buttons_BoxLayout'] auxBoxLayout.bind(minimum_height=auxBoxLayout.setter('height')) auxBoxLayout.clear_widgets() df = db.retDF_DietaAtual() if len(df) != 0: strRefeicao = '#####' for index,row in df.iterrows(): if strRefeicao != row['strRefeicao']: if strRefeicao != '#####': btnRef.criar() auxBoxLayout.add_widget(btnRef) strRefeicao = row['strRefeicao'] # Cria novo widBtnRef btnRef = widBtnRef() btnRef.bind(on_press = partial(btnRef.evento_click,self.manager)) btnRef.iniciar(row['strRefeicao'],db.strHrBr(row['hrHora'])) btnRef.optAppend(row['strOpt']) else: btnRef.optAppend(row['strOpt']) # Ao final deve adicionar o último botão criado if strRefeicao != '#####': btnRef.criar() auxBoxLayout.add_widget(btnRef) db.setConfig('DietaAlterada','0') # Ao alterar a Dieta Atual seja consumindo algo ou etc, preciso refazer essa tela ou mandar excluir o botao else: lbAux = Label(text='Você já consumiu todos os alimentos de hoje!') lbAux.halign = 'center' lbAux.valign = 'middle' lbAux.text_size = 300, None lbAux.font_size = '20sp' lbAux.markup = True lbAux.size_hint_y = None lbAux.height = 100 auxBoxLayout.add_widget(lbAux)
def create_literature(self): global fullapp,butsize,chartsize,spacing butsize = (self.scrollsize[0],fullapp.size[1]*0.1) spacing = fullapp.size[1]*0.03 chartsize = (fullapp.size[0]*0.68,fullapp.size[1]*0.1) symbols_to_fill = 50 image = Widget() image.size = (fullapp.size[0]*0.68,self.find_height(len(self.opened_divisions))+self.find_chartsize(self.opened_divisions[-1])[1]*self.opened_divisions[-1]) image.size_hint_y = None for i in range(len(self.opened_divisions)): CurBaseElement = copy.copy(IlnessBase.Literature[IlnessBase.LiteratureKeys[i]]) CurSource = 'ButtonForLiterature.png' if (self.opened_divisions[i] == 0) else 'ButtonForLiteratureClicked.png' image.canvas.add(Rectangle(size = butsize,pos = (0,image.size[1] - self.find_height(i+1)),source = CurSource)) label = Label(text = '[color=ffffff]'+str(IlnessBase.LiteratureKeys[i])+'[/color]', markup = True, bold =True, italic = True, font_size = fullapp.size[1]*0.04) label.text_size=butsize label.halign = 'left' label.pos = (fullapp.size[0]*0.32,image.size[1] - self.find_height(i+1) - fullapp.size[1]*0.02) image.add_widget(label) button = Button(size = butsize,pos = (0,image.size[1] - self.find_height(i+1)),background_color = (1,1,1,0)) button.num = i button.bind(on_press = self.on_button) image.add_widget(button) if(self.opened_divisions[i] == 1): rectpos = (fullapp.size[0]*0.13,image.size[1] - self.find_height(i+1) - self.find_chartsize(i)[1]) image.canvas.add(Rectangle(size = self.find_chartsize(i),pos = rectpos,source = 'GreySquare.png')) for j in range(len(CurBaseElement)): if(len(CurBaseElement[j]) < symbols_to_fill/1.4): CurBaseElement[j] = CurBaseElement[j][:CurBaseElement[j].find(':')] + ':' +' '*20 + CurBaseElement[j][CurBaseElement[j].find(':')+1:] ChartLabel = Label(text='* ' + CurBaseElement[j][:CurBaseElement[j].find(':')] + '[i]'+CurBaseElement[j][CurBaseElement[j].find(':'):] + '[/i]', text_size = (chartsize[0]*1,chartsize[1]),font_size=chartsize[1]/3.36,markup = True,color = (0.17,0.17,0.17,1), pos = (chartsize[0]/2-fullapp.size[0]*0.017,image.size[1] - self.find_height(i+1)-chartsize[1]*(j+1.4))) image.add_widget(ChartLabel) return image
def __init__(self, **kwargs): super().__init__(**kwargs) self.orientation = "vertical" lab1 = Label(text = "Hello World" ) lab1.size_hint = (None,None) lab1.halign = "right" lab1.height = 30 lab1.width = 200 lab1.color = ( 1,0,0,1) txt1 = TextInput(text = "hi there!") txt1.multiline = False txt1.hint_text = "greeting" txt2 = TextInput() txt1.bind(on_text_validate=self.on_text_validate) clone_widget(txt1,txt2) lab2 = Label(text ="hello") clone_widget(lab1,lab2) self.add_widget(lab1) self.add_widget(lab2) self.add_widget(txt1) self.add_widget(txt2)
def update_palette(self, x, y, tile, tile_tex, tile_prob): # print('\ntile, tile_tex, tile_prob, tile_prob_tex') # print(tile) # print(tile_prob) self.clear_prob_palette() self.selected_lbl.text = 'Tile: %s\nAt: (%s, %s)' % (tile, x, y) self.lbl_rect.texture = tile_tex # with self.selected_lbl.canvas: for key, val_list in tile_prob.items(): prob = val_list[0] rect_texture = val_list[1] lbl = Label( text='Tile: %s\nProb: %s' % (key, prob), # size_hint=(1, 1) size_hint=(None, None), width=150, height=80) lbl.text_size = lbl.size lbl.markup = True lbl.valign = 'middle' lbl.halign = 'left' with lbl.canvas: lbl_rect_prob = Rectangle(size=self.displayed_tile_size, texture=rect_texture) # lbl_rect_prob.texture.mag_filter = 'nearest' self.bind(pos=partial(self.update_lbl_rect, lbl, lbl_rect_prob), size=partial(self.update_lbl_rect, lbl, lbl_rect_prob)) self.rect_list.append(lbl_rect_prob) self.rect_lbl.append(lbl) self.prob_layout.add_widget(lbl) # self.update_lbl_rect(lbl, lbl_rect_prob) Clock.schedule_once(self.refresh_lbl, 0.01) self.prob_layout.bind(minimum_height=self.prob_layout.setter('height'))
def build(self): layout = FloatLayout() label_p = Label() label_p.text = '''Conversor de Números Inteiros\nRetorna um texto representando o número por extenso.\n O número deve estar entre 0 e 999999999999999999.''' label_p.pos_hint = {'center_x': 0.5, 'top': 0.98} label_p.size_hint = (0.7, (1 / 4)) label_p.halign = 'center' label_p.font_size = 20 label_p.color = [1, 1, 1, 1] texto_area = TextInput() texto_area.pos_hint = {'x': 0.05, 'y': 0.40} texto_area.size_hint = (0.6, (1 / 4)) texto_area.background_color = [1, 1, 1, 1] texto_area.input_filter = 'int' texto_area.hint_text = "Digite um número natural..." texto_area.hint_text_color = (1, 0, 0, 1) texto_area.multiline = False texto_area.font_size = '23sp' texto_area_f = TextInput() texto_area_f.pos_hint = {'center_x': 0.5, 'y': 0.03} texto_area_f.size_hint = (0.99, (1 / 3)) texto_area_f.background_color = [1, 1, 1, 1] texto_area_f.readonly = True texto_area_f.cursor_blink = False texto_area_f.font_size = '20sp' texto_area_f.foreground_color = (0, 0, 0, 1) botao_1 = Button() botao_1.text = "CONVERTER" botao_1.pos_hint = {'x': 0.65, 'y': 0.40} botao_1.size_hint = (0.15, (1 / 4)) botao_1.background_color = (0, 0, 0, 1) botao_1.background_normal = '' botao_copia = Button() botao_copia.text = "COPIAR" botao_copia.pos_hint = {'x': 0.80, 'y': 0.40} botao_copia.size_hint = (0.15, (1 / 4)) botao_copia.background_color = (0, 0, 0, 1) botao_copia.background_normal = '' layout.add_widget(label_p) layout.add_widget(texto_area) layout.add_widget(texto_area_f) layout.add_widget(botao_1) layout.add_widget(botao_copia) Window.size = (800, 300) Window.clearcolor = (0.2, 0.8, 1, 1) def copia_texto(): texto_area_f.copy(data=texto_area_f.text) def ver_num(): if texto_area.text == "": texto_area_f.text = 'Vazio' else: if int(texto_area.text) >= 0 and int( texto_area.text) <= 999999999999999999: texto_area_f.text = num_exten(int(texto_area.text)) else: texto_area.text = "" texto_area_f.text = "" botao_1.on_press = ver_num botao_copia.on_press = copia_texto return layout
def build(self): root = BoxLayout(orientation='vertical', padding='5dp', size_hint=(1, None)) root.size_y = '100dp' with root.canvas: Color(.88, .88, .88) Rectangle(pos=root.pos, size=root.size) b = BoxLayout(size_hint=(1, 1)) ai = BoxLayout(size_hint=(.3, 1)) i1 = Image(size_hint=(None, None), source=paths.images + 'crypts/{}.svg'.format(self.item.short)) i1.width = '60dp' i1.height = '60dp' ai.add_widget(i1) b.add_widget(ai) g1 = BoxLayout(spacing='40dp', padding='40dp') # полное имя a1 = AnchorLayout(anchor_x='left', anchor_y='center', padding='10dp') l1 = Label(size_hint=(None, None), color=(0, 0, 0, 1), font_size='20dp', text=self.item.name) l1.valign = 'middle' l1.halign = 'left' a1.add_widget(l1) # цена a3 = AnchorLayout(anchor_x='right', anchor_y='center', padding='10dp') l3 = Label(size_hint=(None, None), color=(0, 0, 0, 1), font_size='20dp', text='{0:.2f}'.format(self.item.rate) + '$') l3.valign = 'middle' l3.halign = 'right' a3.add_widget(l3) g1.add_widget(a1) g1.add_widget(a3) g2 = BoxLayout(spacing='40dp', padding='40dp') # короткое имя a2 = AnchorLayout(anchor_x='left', anchor_y='center', padding='10dp') l2 = Label(size_hint=(None, None), color=(0, 0, 0, 1), font_size='20dp', text=self.item.short) l2.valign = 'middle' l2.halign = 'left' a2.add_widget(l2) g2.add_widget(a2) a4 = AnchorLayout(anchor_x='right', anchor_y='center', padding='10dp') l4 = Label(size_hint=(None, None), text=str(self.item.date), color=(0, 0, 0, 1)) l4.valign = 'middle' l4.halign = 'left' a4.add_widget(l4) g2.add_widget(a4) b0 = BoxLayout(spacing='40dp', orientation='vertical') b0.add_widget(g1) b0.add_widget(g2) b.add_widget(b0) root.add_widget(b) return root
def portal_setup(self, message="Portal acess error!!!", buttons=None): self.get_config() font_large = 32 font_middle = 20 font_small = 18 print "Setup!!!" if self.root: self.root.clear_widgets() self.setup_form = BoxLayout(orientation='vertical') #height='32dp',size_hint_y=None) #self.setup_form.spacing = 40 #self.setup_form.padding = [10,50,10,50] l = Label(text=message) #, font_size=32) l.halign = 'center' #l.font_size=font_large self.setup_form.add_widget(l) b = BoxLayout(orientation='vertical', size_hint_y=None, height=150) l = Label(text="URL:") l.halign = 'left' #l.font_size=font_small b.add_widget(l) self.input_url = TextInput(text=self.url) #self.input_url.font_size=font_middle b.add_widget(self.input_url) self.setup_form.add_widget(b) b = BoxLayout(orientation='vertical', size_hint_y=None, height=150) l = Label(text="Login:"******"Password:"******"Connect", on_press=lambda a: self.config_save_stop()) self.msg_btn.font_size = font_large self.buttons.add_widget(self.msg_btn) self.cfg_btn = Button(text="Reset", on_press=lambda a: self.portal_setup()) self.cfg_btn.font_size = font_large self.buttons.add_widget(self.cfg_btn) self.setup_form.add_widget(self.buttons) self.root.add_widget(self.setup_form) return self.setup_form
def make_server_tab(self): server_tab = TabbedPanelHeader(text="Server") server_widget = Widget() self.bob = None self.send = False self.msg = "" self.done_auth = False # Console txt_console = TextInput(multiline=True) txt_console.pos = (75, 75) txt_console.size = (650, 200) txt_console.readonly = True server_widget.add_widget(txt_console) def print_console(msg): txt_console.text = txt_console.text + "\n" + msg txt_console.cursor = (999, 999) # Config label lbl_config = Label(text="Server Config") lbl_config.pos = (75, 525) lbl_config.size = (100, 40) lbl_config.halign = "left" lbl_config.text_size = lbl_config.size lbl_config.bold = True server_widget.add_widget(lbl_config) # Port label lbl_port = Label(text="Port") lbl_port.pos = (125, 450) lbl_port.size = (100, 30) lbl_port.halign = "right" lbl_port.valign = "middle" lbl_port.text_size = lbl_port.size server_widget.add_widget(lbl_port) # Port input txt_port = TextInput(multiline=False, text="9001") txt_port.pos = (250, 450) txt_port.size = (150, 30) server_widget.add_widget(txt_port) # Secret label lbl_secret = Label(text="Secret") lbl_secret.pos = (125, 400) lbl_secret.size = (100, 30) lbl_secret.halign = "right" lbl_secret.valign = "middle" lbl_secret.text_size = lbl_secret.size server_widget.add_widget(lbl_secret) # Secret input txt_secret = TextInput(multiline=False, text="foobar") txt_secret.pos = (250, 400) txt_secret.size = (150, 30) server_widget.add_widget(txt_secret) # Start button def on_server_btn_start(instance): btn_start.disabled = True txt_secret.readonly = True txt_port.readonly = True print_console("Starting Server on port " + txt_port.text) self.bob = None while self.bob is None: try: self.bob = ChatClientServer("0.0.0.0", int(txt_port.text)) except socket.error as e: log( logging.warning, self, self.make_server_tab, "Error occurred while trying to connect: " "socket.error: {}; retrying...".format(e), ) sleep(1) print_console("Setting shared key to " + txt_secret.text) self.bob.set_shared_key(txt_secret.text.encode()) btn_start = Button(text="Start Server") btn_start.pos = (500, 395) btn_start.size = (200, 100) btn_start.bind(on_release=on_server_btn_start) server_widget.add_widget(btn_start) # Separator line with server_widget.canvas: Rectangle(pos=(75, 350), size=(650, 2)) # Communication label lbl_comm = Label(text="Server Communication") lbl_comm.pos = (75, 300) lbl_comm.size = (400, 40) lbl_comm.halign = "left" lbl_comm.text_size = lbl_comm.size lbl_comm.bold = True server_widget.add_widget(lbl_comm) # Message box txt_message = TextInput(multiline=False) txt_message.pos = (75, 25) txt_message.size = (450, 30) server_widget.add_widget(txt_message) # Send button def on_server_btn_send(instance): if self.done_auth: self.send = True self.msg = txt_message.text btn_send.disabled = True txt_message.text = "" print_console("Will send [" + self.msg + "] on next 'Continue'") else: print_console("Finish authentication first!") btn_send = Button(text="Send") btn_send.pos = (535, 25) btn_send.size = (90, 30) btn_send.bind(on_release=on_server_btn_send) server_widget.add_widget(btn_send) # Continue button def on_server_btn_continue(instance): if self.bob is not None: if self.done_auth: try: if self.send: print_console("Sending [" + self.msg + "]") self.bob.send(self.msg.encode()) self.send = False btn_send.disabled = False self.msg = "" else: data = self.bob.recv(nb=True) if data is not None: print_console("Received [" + data + "]") else: print_console("No data to receive") except NoAuthentication: print_console("We are not authenticated. Reset authentication steps.") self.bob.mutauth_step(reset=True) except DataIntegrityException: print_console( "Either Trudy is attacking or more than one message was received. Not going to display the message. Tell your friend to send only one message at a time." ) else: try: print_console("Performing a mutual authentication step") self.bob.mutauth_step() except BeingAttacked: print_console("We are being attacked! Reset authentication steps.") self.bob.mutauth_step(reset=True) except NoSharedKey: print_console("Shared key is not yet shared. Please share first") self.bob.mutauth_step(reset=True) except StopIteration: print_console("Successfully Authenticated") self.done_auth = True btn_continue = Button(text="Continue") btn_continue.pos = (635, 25) btn_continue.size = (90, 30) btn_continue.bind(on_release=on_server_btn_continue) server_widget.add_widget(btn_continue) server_tab.content = server_widget return server_tab
def check(self, btn): if (main.sel_icone.source == "source/img/icone/img_vazia.jpg" or self.sel_txti.text == "" or self.sel_txti.text == "Nome do personagem"): try: Popup except: from kivy.uix.popup import Popup alert = FloatLayout() btn = Button(text="Ok", size_hint=(.4, .2), on_press=self.dismiss_popup) btn.pos_hint = {"x": 0.5 - (btn.size_hint[0] / 2), "y": 0.05} if (main.sel_icone.source == "source/img/icone/img_vazia.jpg"): alert_msg = Label( text="Selecione um personagem\nantes de jogar!!") else: alert_msg = Label(text="Escolha um nome para\nseu personagem") alert_msg.halign = 'center' alert_msg.valign = 'middle' alert_msg.font_size = sp(17 * Window.size[1] / 600) alert_msg.size_hint = (0.4, 0.15) alert_msg.pos_hint = { "x": 0.5 - (alert_msg.size_hint[0] / 2), "y": 0.2 + btn.size_hint[1] + btn.pos_hint["y"] } alert_msg.background_color = (0.5, 1, 0.5, 0.5) alert.add_widget(alert_msg) alert.add_widget(btn) self._popup = Popup(title="Configurações", content=alert, size_hint=(0.5, 0.5)) self._popup.open() else: try: getnode post except: from requests import post from uuid import getnode ip = str(getnode()) url = "http://10.0.0.109:5000/match" json = {"user_ip": ip, "user_name": self.sel_txti.text} headers = {"Content-Type": "application/json"} response = post( url=url, json=json, headers=headers, verify=False) # envia token + json ignorando SSl(certificado) try: Popup except: from kivy.uix.popup import Popup alert = FloatLayout() btn = Button(text="Ok", size_hint=(.4, .2), on_press=self.dismiss_popup) btn.pos_hint = {"x": 0.5 - (btn.size_hint[0] / 2), "y": 0.05} if (response.status_code == 200): alert_msg = Label(text="Bem vindo de volta!!") self.free = True elif (response.status_code == 201): alert_msg = Label(text="Nome reservado!!") self.free = True else: alert_msg = Label(text="Nome já usado") self.free = False alert_msg.halign = 'center' alert_msg.valign = 'middle' alert_msg.font_size = sp(17 * Window.size[1] / 600) alert_msg.size_hint = (0.4, 0.15) alert_msg.pos_hint = { "x": 0.5 - (alert_msg.size_hint[0] / 2), "y": 0.2 + btn.size_hint[1] + btn.pos_hint["y"] } alert_msg.background_color = (0.5, 1, 0.5, 0.5) alert.add_widget(alert_msg) alert.add_widget(btn) self._popup = Popup(title="Configurações", content=alert, size_hint=(0.5, 0.5)) self._popup.open()
def join(self, bt): try: post getnode except: from uuid import getnode from requests import post if (main.sel_icone.source == "source/img/icone/img_vazia.jpg" or self.sel_txti.text == "Nome do personagem" or self.sel_txti.text == ""): try: Popup except: from kivy.uix.popup import Popup alert = FloatLayout() btn = Button(text="Ok", size_hint=(.4, .2), on_press=self.dismiss_popup) btn.pos_hint = {"x": 0.5 - (btn.size_hint[0] / 2), "y": 0.05} if (main.sel_icone.source == "source/img/icone/img_vazia.jpg"): alert_msg = Label( text="Selecione um personagem\nantes de jogar!!") else: alert_msg = Label(text="Escolha um nome para\nseu personagem") alert_msg.halign = 'center' alert_msg.valign = 'middle' alert_msg.font_size = sp(17 * Window.size[1] / 600) alert_msg.size_hint = (0.4, 0.15) alert_msg.pos_hint = { "x": 0.5 - (alert_msg.size_hint[0] / 2), "y": 0.2 + btn.size_hint[1] + btn.pos_hint["y"] } alert_msg.background_color = (0.5, 1, 0.5, 0.5) alert.add_widget(alert_msg) alert.add_widget(btn) self._popup = Popup(title="Configurações", content=alert, size_hint=(0.5, 0.5)) self.pos_hint = { "x": 0.5 - (self._popup.size_hint[0] / 2), "y": 0.5 - (self._popup.size_hint[1] / 2) } self._popup.open() else: try: self.free except: difer = 2 alert_msg = Label(text="Use o botão 'Check'!!") else: if (self.free == False): difer = 1 else: difer = 0 finally: if (difer == 0): ip = str(getnode()) url = "http://10.0.0.109:5000/match" json = { "user_ip": ip, "server": bt.id, "user_name": self.sel_txti.text, "personagem": selecao.perso_name } headers = {"Content-Type": "application/json"} response = post( url=url, json=json, headers=headers, verify=False ) # envia token + json ignorando SSl(certificado) play_layout = Play_Layout() play_layout.update() screen_manager.current = "play" play.add_widget(play_layout) else: if (difer == 2): alert_msg = Label(text="Use o botão 'Check'!!") else: alert_msg = Label( text="Nome indisponivel\nuse o botão 'Check'!!") try: Popup except: from kivy.uix.popup import Popup alert = FloatLayout() btn = Button(text="Ok", size_hint=(.4, .2), on_press=self.dismiss_popup) btn.pos_hint = { "x": 0.5 - (btn.size_hint[0] / 2), "y": 0.05 } alert_msg.halign = 'center' alert_msg.valign = 'middle' alert_msg.font_size = sp(17 * Window.size[1] / 600) alert_msg.size_hint = (0.4, 0.15) alert_msg.pos_hint = { "x": 0.5 - (alert_msg.size_hint[0] / 2), "y": 0.2 + btn.size_hint[1] + btn.pos_hint["y"] } alert_msg.background_color = (0.5, 1, 0.5, 0.5) alert.add_widget(alert_msg) alert.add_widget(btn) self._popup = Popup(title="Configurações", content=alert, size_hint=(0.5, 0.5)) self.pos_hint = { "x": 0.5 - (self._popup.size_hint[0] / 2), "y": 0.5 - (self._popup.size_hint[1] / 2) } self._popup.open()
bt_resumo = Button() bt_resumo.size_hint = size_bt bt_resumo.text = 'Detalhar' #==================================================== # Box do Checkbox size = 16 ch_plastico = CheckBox() ch_plastico.group = True lb_plastico = Label() lb_plastico.text = 'Plástico' lb_plastico.halign = 'right' lb_plastico.font_size = size ch_construcao = CheckBox() ch_construcao.group = True lb_construcao = Label() lb_construcao.text = 'Construção' lb_construcao.font_size = size ch_tecido = CheckBox() ch_tecido.group = True lb_tecido = Label() lb_tecido.text = 'Tecido' lb_tecido.font_size = size
def show_startup(self): startPop = Popup(title='Help', auto_dismiss=True, size_hint=(0.9, 0.4), separator_color=(0, 0, 1, 1), title_align='center', title_color=(1, 1, 1, 1), title_size='16sp', title_font='fonts/Fcarbim.ttf') layStart = GridLayout(cols=2, spacing=10) but_playNextCards = Image(source='icons/PlayDown.png') but_playNextCards.size_hint = (None, 1) but_playNextCards.width = '40dp' lbl_playNextCards = Label(text=' Play current cards') lbl_playNextCards.halign = 'left' lbl_playNextCards.valign = 'middle' lbl_playNextCards.bind(size=lbl_playNextCards.setter('text_size')) but_startGame = Image(source='icons/ShuffleCardsDown.png') but_startGame.size_hint = (None, 1) but_startGame.width = '40dp' lbl_startGame = Label(text=' Start new game') lbl_startGame.halign = 'left' lbl_startGame.valign = 'middle' lbl_startGame.bind(size=lbl_startGame.setter('text_size')) but_duration = Image(source='icons/noofcards.png') but_duration.size_hint = (None, 1) but_duration.width = '40dp' lbl_duration = Label(text=' How many cards to play') lbl_duration.halign = 'left' lbl_duration.valign = 'middle' lbl_duration.bind(size=lbl_duration.setter('text_size')) but_background = Image(source='icons/but_backofcards.png') but_background.size_hint = (None, 1) but_background.width = '40dp' lbl_background = Label(text=' Change the background') lbl_background.halign = 'left' lbl_background.valign = 'middle' lbl_background.bind(size=lbl_background.setter('text_size')) but_exit = Image(source='icons/Exit.png') but_exit.size_hint = (None, 1) but_exit.width = '40dp' lbl_exit = Label(text=' Exit game') lbl_exit.halign = 'left' lbl_exit.valign = 'middle' lbl_exit.bind(size=lbl_exit.setter('text_size')) layStart.add_widget(but_playNextCards) layStart.add_widget(lbl_playNextCards) layStart.add_widget(but_startGame) layStart.add_widget(lbl_startGame) layStart.add_widget(but_duration) layStart.add_widget(lbl_duration) layStart.add_widget(but_background) layStart.add_widget(lbl_background) layStart.add_widget(but_exit) layStart.add_widget(lbl_exit) startPop.add_widget(layStart) startPop.open()