Ich dachte, ich hätte noch nie eine GUI-App mit Python erstellt, also habe ich es versucht. Außerdem ist es nicht interessant, nur das GUI-Skript zu schreiben, daher habe ich versucht, das Skript im nativen Mac-Anwendungsformat auszugeben und auszuführen.
Ich habe den Code aus der [offiziellen Dokumentation] von tkinter (https://docs.python.org/2/library/tkinter.html) fast so gebracht, wie er ist.
Der geänderte Teil war, dass die say_hi
-Methode eine Nachricht mit der print
-Anweisung ausgibt, also habe ich versucht, dort ein Meldungsfeld anzuzeigen.
Unterwegs wurde mir gesagt, dass die tkMessageBox-Klasse nicht gefunden werden konnte, obwohl ich alle Module von Tkinter importiert hatte, und ich hatte ein kleines Problem. (Ich dachte nicht, dass die tkMessageBox-Klasse eine Top-Level-Klasse ist ...)
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()
Wenn es ausgeführt wird, sieht es so aus.
Klicken Sie auf Hallo.
Ja, das Meldungsfeld ist sicher herausgekommen. Infolgedessen bin ich ein wenig traurig, aber ich werde so weitermachen, wie es ist.
Zuerst fügen wir Py2app mit pip ein.
$ pip install py2app
Wenn Sie dem Tutorial folgen, benötigen Sie anscheinend zuerst setup.py. Es scheint einen praktischen Befehl namens "py2applet" zu geben. Verwenden Sie ihn also, um setup.py zu erstellen.
$ py2applet --make-setup tk.py
Führen Sie dann setup.py aus, um eine App zu erstellen.
$ python setup.py py2app
** 2017/02/09 Behoben ** Aus dem obigen Befehl entfernt, da er mit dem Parameter -A nicht aus anderen Umgebungen ausgeführt werden kann.
Wenn Sie fertig sind, werden die Dateien wie unten gezeigt im Verzeichnis dist abgelegt.
Doppelklicken Sie auf die Datei und sie wurde erfolgreich ausgeführt! Es ist ziemlich einfach. Ich fand, dass das Schreiben von GUI-Apps in Python eine relativ geringe Hürde darstellt, daher möchte ich verschiedene Dinge ausprobieren.
Recommended Posts