Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2014, 02:51
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Problema con fondo en ventana wxPython, el mismo de cambia cuando cambio el del escri

Hola nuevamente amigos!! : )
Les quiero comentar que ya he terminado mi programa "Buscador de Puertos TCP", pero tengo un problema.
Quiero decirles también que el programa funciona perfectamente hasta ahora, lo probé y no tubo errores en nada (excepto en lo que les diré más abajo).
También lo pasé a ejecutable y funciona de maravillas, pero sólo hay 1 problema.
Bueno el tema es que el programa ya está terminado y recién le quice sacar unas fotos por decirlo de alguna manera, capturas de pantalla en realidad y me sorprendió algo que pasó con mi programa.
Primero oculté todos los iconos de mi escritorio para dejarlo vacío, segundo cambié el fondo de mi escritorio a una hermosa imagen de Python (que sería la que usaría como fondo de la captura del programa) y ahí me llevé una sorpresa porque como quedaban bordes negro al costado de esa imagen (la de Python), decidí cambiarle esos bordes a otro color más bonito (esto lo hice desde las opciones de Windows) y quedó listo el fondo de mi escritorio para que solo levante mi programa y le haga las capturas para así publicarlo con sus imágenes de muestra.
La sorpresa vino cuando levanté el programa pulsando el botón del mismo en la barra de tareas, el fondo de mi programa no era el mismo!!! osea cambió a otro, quiero aclarar que el fondo que usa mi programa es el por default, osea que no tiene fondo, el color de fondo es el mismo que el de cualquier programa sin color de fondo, osea ese gris claro.
Mi programa en vez de quedar así como estaba, se cambió a otro color, a un gris oscuro, osea al cambiar el color del borde de la imagen de Python me modificó el fondo de mi programa a un gris oscuro.
Yo para especificar el color de fondo de mi programa uso este método:

Código Python:
Ver original
  1. self.SetBackgroundColour(None)

Porque si no le pongo eso, quedaría exactamente igual como quedó cuando cambié la imágen, osea queda con ese gris oscuro.
Bueno pensé que el intérprete de Python estaría usando la/las misma/mismas librería/librerías que la/las que usa Windows, así que probé compilándolo a ejecutabe.exe y volví a hacer el mismo procedimiento, osea a cambiar de nuevo el color de esos bordes y volvió a pasar lo mismo, aún compilado...
Probé con un programa similar al mío, se llama Free Port Scanner y a él no le pasó lo mismo que al mío, ese programa conservó su color natural/por defecto, que es el mismo color de fondo que el mío, ese gris claro. Seguro Free Port Scanner está escrito en C o C++.
La verdad no sé porque ocurre eso de cambiarme el fondo, lo primeró que pensé es lo que comenté recién.
Cuando compilé mi Buscador de Puertos a ejecutable.exe me salió este mensaje al final:


*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.

OLEAUT32.dll - C:\Windows\system32\OLEAUT32.dll
USER32.dll - C:\Windows\system32\USER32.dll
SHELL32.dll - C:\Windows\system32\SHELL32.dll
ole32.dll - C:\Windows\system32\ole32.dll
COMDLG32.dll - C:\Windows\system32\COMDLG32.dll
WSOCK32.dll - C:\Windows\system32\WSOCK32.dll
COMCTL32.dll - C:\Windows\system32\COMCTL32.dll
ADVAPI32.dll - C:\Windows\system32\ADVAPI32.dll
WS2_32.dll - C:\Windows\system32\WS2_32.dll
WINSPOOL.DRV - C:\Windows\system32\WINSPOOL.DRV
GDI32.dll - C:\Windows\system32\GDI32.dll
gdiplus.dll - C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\gdiplus.dll

KERNEL32.dll - C:\Windows\system32\KERNEL32.dll
MSVCP90.dll - C:\Python27\MSVCP90.dll
WINMM.dll - C:\Windows\system32\WINMM.dll
RPCRT4.dll - C:\Windows\system32\RPCRT4.dll

C:\Python27>


Bueno, el mensaje es claro, me dice que mi ejecutable ha sido compilado y me indica en que ruta está el .exe, también los archivos que copió a ese directorio, etc...
Pero también me dice que mi ejecutable requiere de dependencias de librerías que no están incluídas, es decir que necesita archivos binarios en formato .dll para poder funcionar correctamente.
Pero cláro me imagino que, todos los windows deberían tener todos esos archivos, los que indica que están en la carpeta system32, los demás los tendría que bajar de internet, creo yo, tan sólo son 2.
Ahora mis preguntas son las siguientes:
¿Cómo puedo solucionar este problema para que cuando cambie los bordes de un fondo de escritorio no afecte al fondo de mi programa?
¿Las librerías que me indicó el mensaje que está arriba, las tengo que bajar de internet o copiarlas usando las de mi pc? Me imagino que debo bajarlas.
Cuando tenga las librerías: ¿En qué lugar debo ponerlas? ¿En el mismo directorio donde está mi programa y sus demás archivos como imágenes, archivo .ini, .dll, compilados, etc?
Cuando ya estén ubicadas las librerías junto con mi programa: ¿Volverá a ocurrir el problema del fondo?

Como siempre muchas gracias por toda su ayuda y ya tienen su crédito las personas que me ayudaron con mi programa (Figuran en la lista de colaboradores de mi Escaner)!!! Gracias de corazón amigos!!! : )
Y como siempre, que tengan buen día.