Menübar-Programm Mac mit Python 3

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Gibt es ein Modul, womit ich ein Menü-Bar-Programm für Mac erstellen kann. Es soll mit Python 3 verwendet werden können.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@_nohtyp_
Was ist ein "Menü-Bar-Programm"?
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

So was wie Caffeine. Oder Window Magnet und Fantastical.
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

Kannst du nicht versuchen das genannte Caffeine zu portieren?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

@darktrym
Sorry, verstehe dich nicht. :(
Ich suche nur eine Möglichkeit, ein Programm dieser Art zu programmieren. Natürlich mit anderen Funktionen. Hauptsache es ist nur in der Menübar (also ohne Dock-Icon).
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

Sorry, ich versteh das nicht. Du hast Beispielcode, der ähnliches umsetzt fragst trotzdem nach was anderen?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Die oben genannten Programme sind aber in objective C geschrieben.
Die Frage ist, wie ich sowas in Python umsetze.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

_nohtyp_ hat geschrieben:Gibt es ein Modul, womit ich ein Menü-Bar-Programm für Mac erstellen kann. Es soll mit Python 3 verwendet werden können.
Sorry, ich brauche nur Python 2.
Ich habe das Modul "rumps" gesehen, weiß aber nicht, wie ich es installiere.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie jede andere Python-Lib auch, mittels ``setup.py install`` oder pip.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

_nohtyp_ hat geschrieben:Die oben genannten Programme sind aber in objective C geschrieben.
Die Frage ist, wie ich sowas in Python umsetze.
Wir reden doch von diesem hier?
Ich seh schon ist was anders.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Ich habe eine Lösung gefunden:

Code: Alles auswählen

import objc
from Foundation import *
from AppKit import *
from PyObjCTools import AppHelper

class MyApp(NSApplication):

    def finishLaunching(self):
        # Make statusbar item
        statusbar = NSStatusBar.systemStatusBar()
        self.statusitem = statusbar.statusItemWithLength_(NSVariableStatusItemLength)
        self.icon = NSImage.alloc().initByReferencingFile_('icon.png')
        self.icon.setScalesWhenResized_(True)
        self.icon.setSize_((20, 20))
        self.statusitem.setImage_(self.icon)

        #make the menu
        self.menubarMenu = NSMenu.alloc().init()

        self.menuItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Click Me', 'clicked:', '')
        self.menubarMenu.addItem_(self.menuItem)

        self.quit = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Quit', 'terminate:', '')
        self.menubarMenu.addItem_(self.quit)

        #add menu to statusitem
        self.statusitem.setMenu_(self.menubarMenu)
        self.statusitem.setToolTip_('My App')

    def clicked_(self, notification):
		 print "Hello"
#        NSLog('clicked!')

if __name__ == "__main__":
    app = MyApp.sharedApplication()
    AppHelper.runEventLoop()
Wie kann ich nun Funktionen, die außerhalb der Klasse sind, beim Klicken eines Menüpunktes ausführen?
BlackJack

@_nohtyp_: Na einfach aufrufen.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Wie?
BlackJack

@_nohtyp_: Ernsthaft? Du schreibst Klassen und Methoden und Code der Klassen und Methoden aufruft und weisst nicht was eine Funktion ist und wie man die benutzt?
Antworten