Autor
|
Tema: Icono en python con tkinter (Leído 4,809 veces)
|
|
EdePC
|
Saludos, - Cuando creas un fichero .exe sólido, este se descomprime en %temp% y se ejecuta, PERO las rutas relativas serán del .exe sólido original, por esta razón tus recursos enlazados por rutas relativas deben de estar junto al .exe sólido. - Puedes agregar recursos adicionales así: pyinstaller llaves.py -i cuadrado.ico --noconsole --onefile --add-data estrella.ico;.
- Entonces estrella.ico se descomprimirá en %temp%, ahora solo queda solucionar el problema de las rutas relativas. -- Utiliza esta condicional para hallar la ruta completa de la carpeta descomprimida en el %temp% para especificar la ruta correcta de estrella.ico: import sys if getattr(sys, 'frozen', False) : app.master.iconbitmap(sys._MEIPASS + '\\estrella.ico') else : app.master.iconbitmap('estrella.ico')
================ Referencias: https://pyinstaller.readthedocs.io/en/stable/usage.html#what-to-bundle-where-to-searchhttps://pyinstaller.readthedocs.io/en/stable/runtime-information.html
|
|
|
En línea
|
|
|
|
Jhon2019
Desconectado
Mensajes: 5
|
Gracias EdePc por ayudarme. ¿Funcionara el exe si lo paso a otro ordenador? mi objetivo es que funcione en cualquier ordenador con windows y sin python.
te dejo .py y .spec, No tuve problemas al aprender python y tkinter pero poner un pequeño icono en la ventana esta complicado.
py: ===============================================
from tkinter import *
raiz=Tk() raiz.title("CRACKME KEYGEN") raiz.iconbitmap("estrella.ico")
def generar(): user=vartxt1.get() sum=0 largo=len(user) if (largo>0xb): exit() userMAY="" for i in range(largo): if (ord(user)<0x41): print ("CARACTER INVALIDO") exit() if (ord(user) >= 0x5a): userMAY+= chr(ord(user)-0X20) else: userMAY+= chr(ord(user)) for i in range(len(userMAY)): sum+=ord (userMAY)
xoreado = sum ^ 0x5678 TOTAL = xoreado ^ 0x1234 vartxt2.set(TOTAL)
ventana=Frame(width=350, height=120) ventana.pack(padx=10, pady=10)
vartxt1 =StringVar() txt1 = Entry(ventana, textvariable=vartxt1, width=25) txt1.grid(row=0, column=2, padx=20, pady=10)
vartxt2 =StringVar() txt2 = Entry(ventana, textvariable=vartxt2, width=25) txt2.grid(row=2, column=2, padx=20, pady=10)
txta= Label(ventana, text="NOMBRE :") txta.grid(row=0, column=0)
txtb=Label(ventana, text="SERIAL :") txtb.grid(row=2, column=0)
bgenerar = Button(ventana,command=generar, text="GENERAR", padx= 25, pady=5) bgenerar.grid(row=3, column=2)
ventana.mainloop()
===================================================== spec: ================================================== # -*- mode: python -*-
block_cipher = None
a = Analysis(['llaves.py'], pathex=['C:\\Users\\John\\Desktop\\practica'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='llaves', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, runtime_tmpdir=None, console=False , icon='cuadrado.ico') ===================================================
Gracias
|
|
« Última modificación: 26 Enero 2019, 23:57 pm por Jhon2019 »
|
En línea
|
|
|
|
EdePC
|
- El problema no es pyhton o tkinter, el detalle está en pyinstaller --onefile - Para que sea compatible con pyistaller --onefile haces el agregado que comenté antes: from tkinter import * raiz = Tk() raiz.title("CRACKME KEYGEN") ########################################### import sys if getattr(sys, 'frozen', False) : raiz.iconbitmap(sys._MEIPASS + '\\estrella.ico') else : raiz.iconbitmap('estrella.ico') ############################################ def generar(): user = vartxt1.get() sum = 0 largo = len(user) if (largo > 0xB): exit() userMAY = "" for i in range(largo): if (ord(user[i]) < 0x41): print ("CARACTER INVALIDO") exit() if (ord(user[i]) >= 0x5A): userMAY += chr(ord(user[i]) - 0X20) else: userMAY += chr(ord(user[i])) for i in range(len(userMAY)): sum += ord(userMAY[i]) xoreado = sum ^ 0x5678 TOTAL = xoreado ^ 0x1234 vartxt2.set(TOTAL) ventana = Frame( width=350, height=120 ) ventana.pack( padx=10, pady=10 ) vartxt1 = StringVar() txt1 = Entry( ventana, textvariable=vartxt1, width=25 ) txt1.grid( row=0, column=2, padx=20, pady=10 ) vartxt2 = StringVar() txt2 = Entry( ventana, textvariable=vartxt2, width=25 ) txt2.grid( row=2, column=2, padx=20, pady=10 ) txta = Label( ventana, text="NOMBRE :" ) txta.grid( row=0, column=0 ) txtb = Label( ventana, text="SERIAL :" ) txtb.grid( row=2, column=0 ) bgenerar = Button( ventana,command=generar, text="GENERAR", padx= 25, pady=5 ) bgenerar.grid( row=3, column=2 ) ventana.mainloop()
- Luego con pyinstaller: pyinstaller llaves.py -i cuadrado.ico --noconsole --onefile --add-data estrella.ico;.
Nombre: pepe Serial: 17766 - Te podría recomendar también este libro en inglés, pero lo raro es que no está la orden iconbitmap http://infohost.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf-- Y por supuesto este otro buen libro en español, es muy práctico con muchos ejemplos: https://openlibra.com/es/book/download/doma-de-serpientes-para-ninos-edicion-windows
|
|
« Última modificación: 27 Enero 2019, 01:40 am por EdePC »
|
En línea
|
|
|
|
Jhon2019
Desconectado
Mensajes: 5
|
Muchisimas gracias EdePC, Si funciona Voy a leer los libros.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
icono en tkinter
« 1 2 »
Scripting
|
elhacker_carlos
|
11
|
11,138
|
6 Julio 2011, 21:46 pm
por elhacker_carlos
|
|
|
[Python/Tkinter](Kyurem v2.0)Consola de comandos hecha en python
Scripting
|
AdeLax
|
0
|
4,547
|
9 Agosto 2013, 22:45 pm
por AdeLax
|
|
|
[Python/Tkinter](Kyurem v2.0)Consola de comandos hecha en python (Continuación)
Scripting
|
Príncipe_Azul
|
5
|
5,280
|
16 Abril 2014, 11:19 am
por AdeLax
|
|
|
[Python] No va tkinter en mac
« 1 2 »
Scripting
|
<Trocutor>
|
17
|
9,137
|
16 Junio 2017, 16:21 pm
por <Trocutor>
|
|
|
[Solucionado][PYTHON]Como dibujar un triangulo perfecto en python con TKinter?
Programación General
|
Mastodonte
|
2
|
6,814
|
24 Septiembre 2017, 15:50 pm
por Mastodonte
|
|