Quando si crea un'applicazione con una GUI utilizzando Tkinter in Python, il nome dell'applicazione appare come "Python" nella barra dei menu su OS X. Come si può ottenere apparire come qualcos'altro?Modificare il titolo dell'applicazione Tkinter in OS X Barra dei menu
risposta
La mia risposta è basata su uno sepolto nel mezzo di some forums. È stato un po 'difficile trovare questa soluzione, ma mi è piaciuto perché ti permette di distribuire la tua applicazione come un singolo script multipiattaforma. Non è necessario eseguirlo tramite py2app o qualcosa di simile, che ti lascerebbe un pacchetto specifico per OS X.
In ogni caso, sto condividendo la mia versione ripulita qui per dargli un po 'più di attenzione, quindi stava arrivando. Dovrai installare pyobjc
tramite pip
per ottenere il modulo Foundation
utilizzato nel codice.
from sys import platform
# Check if we're on OS X, first.
if platform == 'darwin':
from Foundation import NSBundle
bundle = NSBundle.mainBundle()
if bundle:
info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
if info and info['CFBundleName'] == 'Python':
info['CFBundleName'] = <Your application name here>
ma questo richiede un altro terzo biblioteca di partito. Non c'è modo di farlo all'interno di Tk? – Zizouz212
@ Zizouz212: Ho uno script che installa automaticamente 'pip' e lo usa per installare framework aggiuntivi in fase di runtime. Si tratta di un singolo tentativo per l'utente quando eseguono l'applicazione la prima volta (supponendo che abbiano una connessione Internet). Quindi considero le librerie di terze parti un costo molto basso. Ma se ti piacerebbe farne a meno, immagino che tu possa guardare al sorgente di 'NSBundle' e prendere solo ciò che ti serve da esso e inserirlo direttamente nel tuo codice. – ArtOfWarfare
Ho provato ad installare 'pyobjc' sull'ultimo MBP15 - ci sono voluti circa mezz'ora. Non un'opzione. – Andrei
non possono essere del tutto quello che ti serve, ma mi sorprende che nessuno ha menzionato la piattaforma modo semplice indipendente (funziona con Python 3.x su Win 7):
from tkinter import Tk
root = Tk()
root.title("Your title here") # or root.wm_title
e se si vogliono cambiare l'icona:
''' Replace the default "Tk" icon with an Application-specific icon '''
''' (that is located in the same folder as the python source code). '''
import sys
from tkinter import PhotoImage
program_directory = sys.path[ 0 ]
IconFile = os.path.join(program_directory) + "\ApplicationIcon.gif"
IconImage = PhotoImage(file = IconFile)
root.tk.call('wm', 'iconphoto', root._w, IconImage)
root.mainloop()
Ho chiesto specificamente su OS X (e voglio una risposta che funzioni su 2.7, anche se questo probabilmente non fa la differenza). Avete effettivamente provato questo su OS X e visto che funziona? Devo supporre che l'ho provato prima di chiedere un anno fa ... In realtà non ho un computer con OS X davanti a me per testarlo adesso. Approfondirò questo più tardi quando avrò la possibilità di provare su un Mac ... – ArtOfWarfare
prova questo codice su OSX con Pyton 2.x da Tkinter import * root = Tk() root.title ("Il tuo titolo qui ") w = Etichetta (root, text =" Ciao, mondo! ") w.pack() root.mainloop() – user1459519
Ripubblicato a causa dello stupido limite di 5 minuti per la modifica dei commenti. Per python 2.x utilizzare "da Tkinter" anziché "da tkinter" (per 3.x). Tkinter/tkinter è progettato per essere compatibile con più piattaforme su almeno Linux, Win e Mac. Prova questo codice su OS X con Python 2.x - è leggermente modificato da [link] (http://effbot.org/tkinterbook/tkinter-hello-tkinter.htm): root = Tk() root.title ("Il tuo titolo qui") w = Label (root, text = "Ciao, mondo") w.pack() radice.mainloop() – user1459519
- 1. Come posso modificare il titolo dell'applicazione java swing nella barra del titolo di Mac OS X?
- 2. Mac OS X Lion Barra dei menu Applicazione
- 3. Come aggiungere il mio programma alla barra dei menu di sistema OS X?
- 4. Icona della barra dei menu in OS X per lo script eseguito come daemon?
- 5. Come posso modificare i metadati dei file in OS X?
- 6. Come si sposta la mia JMenuBar sulla barra dei menu dello schermo su Mac OS X?
- 7. Scorrimento inerziale in Mac OS X con Tkinter e Python
- 8. Come trovo il menu "Preferenze" in Eclipse in OS X?
- 9. Cambia titolo frame Tkinter
- 10. OS X: impostazione in fase di runtime del nome dell'applicazione come appare nel Dock e nella barra dei menu
- 11. Menu Preferenze Mac OS X Java Swing
- 12. tkinter abilita/disabilita menu
- 13. Creare il menu simile a una finestra su OS X
- 14. Focus della finestra di Tkinter su Mac OS X
- 15. Nome barra dei menu di modifica di Javafx
- 16. Rileva il pulsante della cuffia che preme in OS X
- 17. Barra del titolo mancante in NSOpenPanel?
- 18. Come modificare il colore di primo piano o di sfondo di un pulsante Tkinter su Mac OS X?
- 19. Voci di menu non visualizzate nella barra dei menu
- 20. Come modificare l'eseguibile in un pacchetto di applicazioni OS X
- 21. NSTimer con una barra dei menu app
- 22. TinyMCE personalizza la barra dei menu "file"
- 23. TinyMCE 4 add menu a discesa per barra dei menu
- 24. Specifica dei binari firmati su OS X
- 25. Come modificare il testo del titolo e il colore dei pulsanti SENZA cambiare il colore del testo del menu di overflow dell'azione nella nuova barra degli strumenti?
- 26. Java OS X Lion Il nome dell'applicazione del set non funziona
- 27. Enumerazione dei browser installati su OS X
- 28. Menu Eclipse disabilitati su OS X 10.9 Beta 6
- 29. Creare l'icona del vassoio monocromatico per OS X utilizzando QSystemTrayIcon
- 30. Modificare il menu della finestra in Java
correlati http://stackoverflow.com/questions/8695926/remove-default-python-submenu-with-tkinter-menu-on-mac-osx – Andrei