Créez une application graphique native avec Py2app et Tkinter

introduction

Je pensais que je n'avais jamais créé d'application graphique avec Python, alors je l'ai essayé. De plus, il n'est pas intéressant d'écrire uniquement le script GUI, j'ai donc essayé de sortir et d'exécuter le script au format d'application natif Mac.

Quoi utiliser

code

J'ai apporté le code des [Documents officiels] de tkinter (https://docs.python.org/2/library/tkinter.html) presque tel quel.

La partie modifiée est que la méthode say_hi génère un message avec l'instruction print, alors j'ai essayé d'afficher une boîte de message là-bas.

En chemin, même si j'ai importé tous les modules Tkinter, on m'a dit que la classe tkMessageBox était introuvable et j'ai eu un petit problème. (Je ne pensais pas que la classe tkMessageBox était une classe de premier niveau ...)

tk.py


from Tkinter import *
import tkMessageBox

class Application(Frame):
    def say_hi(self):
        tkMessageBox.showinfo('info', 'hi there, everyone!')

    def createWidgets(self):
        self.QUIT = Button(self)
        self.QUIT["text"] = "QUIT"
        self.QUIT["fg"]   = "red"
        self.QUIT["command"] =  self.quit

        self.QUIT.pack({"side": "left"})

        self.hi_there = Button(self)
        self.hi_there["text"] = "Hello",
        self.hi_there["command"] = self.say_hi

        self.hi_there.pack({"side": "left"})

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()

Une fois exécuté, cela ressemble à ceci.

main window

Cliquez sur Bonjour.

info message

Oui, la boîte de message est sortie en toute sécurité. Du coup, je suis un peu triste, mais je vais continuer comme ça.

Envelopper avec Py2app

Tout d'abord, insérons Py2app avec pip.

$ pip install py2app

Si vous suivez le tutoriel, il semble que vous ayez d'abord besoin de setup.py. Il semble y avoir une commande pratique appelée py2applet, alors utilisez-la pour créer setup.py.

$ py2applet --make-setup tk.py

Ensuite, exécutez setup.py pour créer une application.

$ python setup.py py2app

** 2017/02/09 Corrigé ** Supprimé de la commande ci-dessus car elle ne peut pas être exécutée à partir d'autres environnements avec le paramètre -A.

Une fois terminé, les fichiers seront placés sous le répertoire dist comme indiqué ci-dessous.

dist

Double-cliquez sur le fichier et il s'est exécuté avec succès! C'est assez simple. J'ai trouvé que l'écriture d'applications GUI en Python est un obstacle assez faible, alors j'aimerais essayer diverses choses.

référence

Recommended Posts

Créez une application graphique native avec Py2app et Tkinter
Créer une application graphique avec Tkinter de Python
Créons une application Mac avec Tkinter et py2app
Créer un fichier exécutable GUI créé avec tkinter
Créer une interface graphique python à l'aide de tkinter
Application GUI facile avec Tkinter Text
Créer une application GUI simple en Python
Créez une application Web simple avec Flask
Créer une application Todo avec Django ④ Implémenter la fonction de création de dossier et de tâche
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
Vous pouvez facilement créer une interface graphique même avec Python
Créer une matrice avec PythonGUI (combo tkinter)
Procédure de création d'application multi-plateforme avec kivy
Essayez de créer un Checkbutton dynamiquement avec Tkinter en Python
Essayez de créer une application Todo avec le framework Django REST
Créer une application Todo avec Django ③ Créer une page de liste de tâches
Créez un lot d'images et gonflez avec ImageDataGenerator
Créer une visionneuse de modèle 3D avec PyQt5 et PyQtGraph
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créer une application Todo avec Django ⑤ Créer une fonction d'édition de tâches
[Linux] Créez un auto-certificat avec Docker et apache
Programmation avec Python et Tkinter
Travailler avec le tkinter et la souris
Créer une page d'accueil avec django
Créer une visionneuse d'images avec Tkinter
Créer un répertoire avec python
[Python] Créez un écran de spécification de chemin de fichier et de dossier avec tkinter
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Créez une application d'apprentissage automatique avec ABEJA Platform + LINE Bot
Créez un jeu de vie mis à jour manuellement avec tkinter
Créez des applications, enregistrez des données et partagez-les avec un seul e-mail
Créons un diagramme PRML avec Python, Numpy et matplotlib.
[Fiche d'apprentissage] Créez un mystérieux jeu de donjon avec Pyhton's Tkinter
Créer une interface graphique aussi facilement que possible avec python [édition tkinter]
Créez un script de déploiement avec fabric et cuisine et réutilisez-le
Créer une application Todo avec Django ① Créer un environnement avec Docker
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
Étapes pour configurer Pipenv, créer une application CRUD avec Flask et la conteneuriser avec Docker
Créons une IA à trois voies avec Pylearn2 --Save and load model -
Faisons une interface graphique avec python.
Créez un fichier temporaire avec django sous forme de zip et renvoyez-le
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Page de création de décalage)
Créez un environnement virtuel avec Python!
Création et déploiement d'applications Django (PTVS) à l'aide du stockage Azure Table
[GUI en Python] PyQt5-Glisser-déposer-
Async / await avec Kivy et tkinter
Créez un DMP privé sans coût initial ni développement avec BigQuery
Créez une application de scraping avec Python + Django + AWS et modifiez les tâches
J'ai essayé de créer des taureaux et des vaches avec un programme shell
Créez un stepper de poisson avec numpy.random
Dessinez un graphique avec l'interface graphique PySimple
Créer un téléchargeur de fichiers avec Django
Créer et renvoyer un fichier CSV CP932 pour Excel avec Chalice
[AWS] Créez un environnement Python Lambda avec CodeStar et faites Hello World