Pular para o conteúdo

Embutindo imagens nos scripts Python para aplicações Tkinter

Arquivos gráficos geram uma dependência na aplicação cujo tratamento (de existência ou MD5) pode não valer a pena dependendo do tamanho da aplicação. O que fazer para evitar que o usuário exclua, renomeie, corrompa ou modifique um arquivo de imagem? Este artigo visa introduzir uma solução para este problema.
Willie Lawrence cptx032
Hits: 27.550 Categoria: Python Subcategoria: Outros
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Organização de uma aplicação real e conclusão

"Sujar" o código com uma série de códigos malucos é uma péssima ideia. Uma boa ideia é encapsular todas as imagens num módulo único como "resource.py" cujo conteúdo poderia ser:

### RESOURCE.py ###
GREEN_CHECK = "iVBORw0KGgoAAAANSUhEUgAAADcAAAA3CAYAAACo29JGAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29\
mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJsSURBVHja7JrrbYMwEIAvqAu4I7Qj0BHMCGQEGAF\
GgBGaEcIIZYRkBVZgBArSIbmubTAPc0Y56X7EhITP9wYuXdfBWSWAE8sl/D4Vz0DT9Fo+kg7eTgIVIxj\
rte21GiB9h2MIFQtrFVrPa8uJ1gK0WIpw4DPcXbLWs9fraDFfs2XY60Phhl8ymG9wMYKFwlqOFlOKL25\
Z9JpJa1Gvtekk6nAM44sLaw1a6zl1MmW4DwQLJbBIFV8+wQ1AP0KaHzNihCnf296SY+JYBUYRjqPFRKk\
x1be2P0YJLtGARb6PPAm2UqDoOrye53Rg0RJXpAQXK8DGOtau/fHg4ORxl9ZamzpGFS5UJA/YEuwoOB3\
YrJaKMtzYUjFpPReHTF/h7ggI0jxW7vFngWOwcOtaRgEuk6bnMTNe9/xTF3AxDpuypFtmxiPgPhRFGjD\
Gqr13NXAQZ0wRZ7mLWAgUY/0QHx2qKrvZ3PcIXceZbhLnip2O8QJtO4cY/t/QGd2xcQUXSLMU08SN7ph\
NnO1Wz0xwDLWZuOBsRZy1ruJMhmtxRz8ndjZTxNDc7zh1R11CyScAiwnrqo7Xrt3RVApyQ3fO4e8NUlF\
0jzFzOEh0de464XqqNa5xxyc1uMbgSlyKK12yaY9yxzkdSmm4j5FIVmOW5x8OZ9r5BIG4BDrH8iTgBrl\
NWK8wWB2ow7WG7r3Q1LQGN4U83BIrkLDaXLjGYvYiYzWbee628fdIwdUze0Mv4eZc+O3ourYWznTxFRA\
TGzhTWUhh4rUJ6nAq6wyf36nF2lK4WnDNFDZ6jraXLHlVo0TIJxCXy+sd5xccPfkVYADDOZXimxZ6tAA\
AAABJRU5ErkJggg=="
LOGO = "..."
SPLASH_SCREEN = "..."

Uma outra ideia é utilizar um dicionário ou a persistência em Shelve :

IMAGENS = {
    "logo" ; "...",
}

Ou:

import shelve
resource = shelve.open("./resource")
resource["LOGO"] = "..." # escrevendo
LOGO = resource["LOGO"] # lendo
resource.close()

Além dessas técnicas é possível ainda carregar uma imagem direto da internet usando urllib . Com isso pode-se obter um nível desejado de segurança na consistência dos seus arquivos de imagem para que você tenha certeza que sua aplicação está rodando exatamente com os arquivos que você planejou.

   1. Quem é o Tkinter
   2. Criando uma aplicação básica
   3. Organização de uma aplicação real e conclusão
Nenhum artigo encontrado.

Monitorando produtos no ML com Python 3 via BeautifulSoup

Robótica com Android e Arduino

Python - Threads

Python - Enviando Backup para Servidor Secundário

tux-gpt - Assistente de IA para o Terminal

#1 Comentário enviado por fabio em 26/12/2014 - 14:54h
Artigo muito bem escrito! Me deu saudades agora do bom e velho Tcl/Tk. Programei muito com ele na década de 90... Putz, tô ficando velho!

Contribuir com comentário

Entre na sua conta para comentar.