Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ejecutable de varios programas
#1
Hola a tod@s!!!

Espero que me puedan echar una mano con este problema.
He desarrollado un pequeño crm que parte de una pantalla principal y con botones se llaman a los programas para gestionar los clientes, contactos, ofertas...

No sé como crear el ejecutable para que funcione.

Adjunto el código del programa principal que llama a los otros programas según el botón que se pulse.

from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
import subprocess

root = Tk()
root.resizable(0,0)
root.geometry("1400x800+250+130")
root.title("CRM")
root.iconbitmap("mnd.ico")

def salirAplicacion():
        salir=messagebox.askquestion("Salir","¿Desea salir de la aplicación?")
        if salir == 'yes':
            root.quit()

def programaClientes():
    subprocess.Popen(["python", "mantenimiento_clientes.pyw"])

def programaContactos():
    subprocess.Popen(["python", "mantenimiento_contactos.pyw"])

def programaOfertas():
    subprocess.Popen(["python", "mantenimiento_ofertas.pyw"])

barraMenu=Menu(root)
root.config(menu=barraMenu)

menuActividades=Menu(barraMenu, tearoff=0)
barraMenu.add_cascade(label="Actividades", menu=menuActividades)
menuActividades.add_command(label="Contactos", command=programaContactos)
menuActividades.add_command(label="Clientes", command=programaClientes)
menuActividades.add_separator()
menuActividades.add_command(label="Ofertas", command=programaOfertas)
menuActividades.add_separator()
menuActividades.add_command(label="Salir", command=salirAplicacion)

menuAyuda=Menu(barraMenu, tearoff=0)
barraMenu.add_cascade(label="Ayuda", menu=menuAyuda)
menuAyuda.add_command(label="Acerca de")

fondo = PhotoImage(file="fondoPantPrincipal.ppm")
lbFondo = Label(root,image=fondo).place(x=0, y=0)

img_file = Image.open("01_Contactos.jpg")
img_file = img_file.resize((150, 150))
img = ImageTk.PhotoImage(img_file)
b1 = Button(root, image=img, command=programaContactos)
b1.place(x=50, y=50)


img_file1 = Image.open("02_Clientes.jpg")
img_file1 = img_file1.resize((150, 150))
img1 = ImageTk.PhotoImage(img_file1)
b2 = Button(root, image=img1, command=programaClientes)
b2.place(x=210, y=50)

img_file2 = Image.open("03_Ofertas.jpg")
img_file2 = img_file2.resize((150, 150))
img2 = ImageTk.PhotoImage(img_file2)
b3 = Button(root, image=img2, command=programaOfertas)
b3.place(x=370, y=50)

root.mainloop()
Responder
#2
Hola, bienvenido.

¿Hay alguna razón por la cual tienen que ser programas distintos? Te convendría que fueran distintas ventanas de un mismo programa (usando tk.Toplevel). Como sea, podés convertirlo a un ejecutable usando cualquiera de estas tres herramientas: https://recursospython.com/guias-y-manua...-y-py2exe/. Solo tené en cuenta que, si convertís los programas a ejecutables, vas a tener que cambiar tus subprocess.Popen() para que invoquen a los ejecutables (.exe) en lugar de a los scripts de Python (.py).

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Hola Francisco,
Son programas distintos porque cada uno gestiona cosas distintas, uno gestiona los clientes, otro las ofertas....

Lo que hecho ha sido convertirlos todos a .exe por separado y en lugar de llamar al .pyw llamo al .exe

No me acaba de gustar pero así parece que funcina.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)