applications-with-kivy-in-python
Repositório para o curso da framework kivy do python
https://github.com/ogliarinatan/applications-with-kivy-in-python
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.3%) to scientific vocabulary
Keywords
Repository
Repositório para o curso da framework kivy do python
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
applications-with-kivy-in-python
- Repositório para o curso da framework kivy do python
- Desenvolvimento de Apps Comerciais com Python e Kivy para Android, iOS,
para uso
- intale as dependências dos requerimentos
shell pip install -r requirement.txt - [x] Manual em português do kivy
Recursos interessante (Regras)
property
- Nunca se acessa diretamente as variáveis.
- uso do
property(fget= , fset= ) - -
var = property(fget=_get_var, fset=_set_var) - o uso do __ ante da variável, indica as compilador que ela não pode ser acessada diretamente. Exemplo: ```python class Retangulo:
def init(self, largura, altura): self.largura = 0 #Não pode acessar diretamente, utilizar os metodos acessores self.altura = 0 #Não pode acessar diretamente, utilizar os metodos acessores self.setaltura(altura) #metodo acessor self.setlargura(largura) #metodo acessor
def setaltura(self, num): if(not(isinstance(num, int) and (num > 0))): raise ValueError("Altura é inválida: {}".format(num)) self.altura = num self._var = 456
def setlargura(self, num): if(not(isinstance(num, int) and (num > 0))): raise ValueError("Largura é inválida: {}".format(num)) self.largura = num def _getarea(self): #metodo de solicitação return self.largura * self.altura def getaltura(self): #metodo de solicitação return self.altura def _getlargura(self): #metodo de solicitação return self._largura
altura = property(fget=getaltura, fset=setaltura) largura = property(fget=getlargura, fset=setlargura) area = property(fget=getarea)
r = Retangulo(altura=10, largura=5) r.largura = 50 r.altura = 10 print(r.altura) print(r.largura) print('valor de area') print(r.area) ```
@property com @metodo.setter
Exemplo ```Python class Retangulo:
def __init__(self, largura, altura):
self._largura = 0 #Não pode acessar diretamente, utilizar os metodos acessores
self._altura = 0 #Não pode acessar diretamente, utilizar os metodos acessores
self.altura = altura #metodo acessor
self.largura = largura #metodo acessor
@property
def altura(self): #metodo de solicitação
return self._altura
@altura.setter
def altura(self, num):
if(not(isinstance(num, int) and (num > 0))):
raise ValueError("Altura é inválida: {}".format(num))
self._altura = num
@property
def largura(self): #metodo de solicitação
return self._largura
@largura.setter
def largura(self, num):
if(not(isinstance(num, int) and (num > 0))):
raise ValueError("Largura é inválida: {}".format(num))
self._largura = num
@property
def area(self): #metodo de solicitação
return self._largura * self._altura
r = Retangulo(altura=5, largura=5) r.largura = 5 r.altura = 10
r.area = 100 #Levanta um erro, pois é apenas captura de valor em vez de setar valor.
print("valor da altura: ", r.altura) print('valor da largura: ', r.largura) print('valor de area: ', r.area) ```
Classe em Python
- As classe são utilizadas para criar objetos e em Python as mesmas também são objetos.
- Cuidado com as nomenclatura:
- [x] MEMBROS DE CLASSE
- [x] MEMBROS DE INSTÂNCIAS
Aprenderemos a operar um membro de classe.
Ao operar as classes, altera-se todos os membros juntos, se alterar apenas o membro será alterado apenas no referido.
Na busca por atributos o Python, irá busca primeiro na membro atributo, caso não encontre ele busca na classe.
Exemplo de Método de classe: ```python class A:
Todas as instancias possuem acesso
@classmethod def fun(cls, arg1, arg2, ...): pass #Informa que não irei implementar por enquanto
```
Método Estáticos
- Não possui relação direta com a classe, porém são membro de classe. sem a declaração de parâmetros "cls" ou "self" ## Posicionamento
- A biblioteca Kivy opera no primeiro plano cartesiano.
- o Posicionamento se baseia-se no ângulo inferior esquerdo, para início do posicionamento.
- É de responsabilidade do programador posicionar as janelas, caso contrario, não será exibido na tela
- Sistemas de medidas responsivo.
- Definir de forma automática com consequência a resolução das telas(pixel).
- dp, independa do tamanho da tela é proporcional a largura de pixel pela densidade da tela.

Tela com algumas funcionalidades da biblioteca kivy
- A aplicação permite apenas um widget's principal, porém, cria-se leiautes para várias janelas. ```python from kivy.app import App from kivy.uix.label import Label #Escrita de texto from kivy.uix.button import Button #Botão from kivy.uix.textinput import TextInput #Entrada de texto
```
Linguagem Kivy
```python
LayoutType2: #Gerenciador de Layout generico fontsize: 70 centerx: root.width / 4 top: root.top - 5 text: "0"
```
Propriedades Percentuais

Para testes de tela em diversas telas de aparelhos movéis :D
```sheel activate k35 #Ativa o ambiente virtual do python 3.5
Vá no diretório da aplicação
dir "caminhopathapp"
python nome_app.py -m screen #Lista os dispositivos suportados
pyhton nomeapp.py -m screen:nomedispositivo ```
ipython
- Roda em linha de comando e interage em diversas outros scripty
```shell cd dir_app
jupyter notebook #Abre o jupyter no navegador padrão
```
kivy
- MinhaApp - minha.kv
- ProgramaApp - programa.kv
- Prog - prog.kv
Palavras reservadas em Kivy

```kivy
Widget tools 
Passos para executar em dispositivos moveis

Nunca é demais lelembrar


Owner
- Name: Natan Ogliari
- Login: OgliariNatan
- Kind: user
- Location: Brasil, Florianópolis/SC
- Company: @ZeniteSolar
- Website: http://lattes.cnpq.br/3680617931994905
- Repositories: 1
- Profile: https://github.com/OgliariNatan
Graduating in electronic engineering.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this report, please cite it as below." authors: - family-names: "Natan" given-names: "Ogliari" orcid: "https://orcid.org/0009-0000-2586-2481" title: "applications-with-kivy-in-python" version: 1.0.0 doi: 10.5281/zenodo.1234 date-released: 2023-12-01 url: "https://github.com/OgliariNatan/applications-with-kivy-in-python"
GitHub Events
Total
Last Year
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| OgliariNatan | n****i@g****m | 132 |
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- docutils >=0.12
- gitpython >=1.0
- jedi >=0.9
- kivy >=1.9.1
- kivy-garden *
- pygments >=2.1
- six >=1.10.0
- watchdog >=0.8
- Cython >=0.23
- sphinxcontrib-actdiag *
- sphinxcontrib-blockdiag *
- sphinxcontrib-nwdiag *
- sphinxcontrib-seqdiag *
- Kivy-Garden >=0.1.4
- docutils *
- pygments *