Exemple #1
0
    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)
Exemple #2
0
 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)
Exemple #3
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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
Exemple #7
0
 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
Exemple #10
0
    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)
Exemple #11
0
    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)
Exemple #13
0
 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)
Exemple #14
0
 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
Exemple #15
0
	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)
Exemple #16
0
    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'))
Exemple #19
0
    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
Exemple #20
0
    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
Exemple #21
0
    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
Exemple #22
0
    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
Exemple #23
0
 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()
Exemple #24
0
    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()
Exemple #25
0
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
Exemple #26
0
    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()