Reflexión del día

sábado, 2 de diciembre de 2017

Ctypes y cuadros de diálogo

Que tengan muy buenos días, tardes o noches. En esta oportunidad, me gustaría compartir un dato muy curioso que podría ser de gran utilidad para ciertas aplicaciones que se vayan a desarrollar. Espero que sea de su agrado.

En Python existe un módulo de nombre ctypes que nos permite el acceso directo a liberías compartidas del SO.

Lo que voy a compartir es un pequeño dato que me ha parecido interesante y cómo emplearlo. Consiste en la creación de un cuadro de diálogo. El procedimiento es realmente sencillo.

    import ctypes
    ctypes.windll.user32.MessageBoxW(0,"Texto","Titulo",0)

Esto nos permitirá crear un pequeño cuadro de diálogo con las características especificadas. Otra forma de hacerlo, y que yo suelo preferir, es definiendo una función para nuestro cuadro de diálogo.

    import ctypes
    def Cuadro(titulo,texto,est):
        return ctypes.windll.user32.MessageBoxW(0,texto,titulo,est)
    Cuadro("Saludos a todos!","Que tengas un buen dia",0)

El argumento "est" de la función que acabamos de definir hace referencia al "estilo" del cuadro de diálogo. En el ejemplo, hemos elegido 0, que es un botón de "Aceptar".

Estilos disponibles de cuadros de diálogo:

    0: Aceptar
    1: Aceptar | Cancelar
    2: Anular | Reintentar | Omitir
    3: Sí | No | Cancelar
    4: Sí | No
    5: Reintentar | Cancelar
    6: Cancelar | Reintentar | Continuar

Si han revisado el código en el intérprete de Python, seguramente habrán notado que tras hacer click sobre alguna de las opciones, el cuadro se cierra y se nos devuelve un entero. Ese valor será el que usaremos para definir qué hará nuestro programa cuando alguna opción sea elegida.
Uno de los métodos más sencillos es asignar una variable que luego podemos imprimir en la consola para conocer su valor numérico.

    x = Cuadro("Hola","Esto es un mensaje de prueba",3)
    print(x)

Si hacemos click en los diferentes botones, se nos devolverá su valor correspondiente. Con este valor y gracias a las sentencias if podremos definir qué se ejecutará con cada opción.

    x = Cuadro("Prueba","Comenzar en pantalla completa?",3)
    if x == 6:
        print("Comenzando en pantalla completa...")
    elif x == 7:
        print("Comenzando en modo ventana...")
    elif x == 2:
        print("Cerrando el programa...")

Explicando el ejemplo anterior, hemos utilizado el estilo 3 de nuestro cuadro de dialogo. Esto creará un cuadro con las opciones de Sí, No y Cancelar. Si elegimos Si, nuestra variable tendrá un valor de 6; si elegimos No, un valor de 7; y si elegimos Cancelar, el valor de 2. Con las sentencias if podremos definir exactamente lo que se ejecutará dependiendo de la elección del usuario.

Espero que este pequeño dato pueda ser de utilidad, si en caso surgiesen problemas, pueden escribir sus dudas en los comentarios de esta entrada. Eso sería todo por ahora, que tengan un buen día y que puedan concretar sus metas. Hasta pronto.

No hay comentarios.:

Publicar un comentario