您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 没有Xcode的PyObjC教程

5b51 2022/1/14 8:22:35 python 字数 2848 阅读 560 来源 www.jb51.cc/python

我正在编写一个小型的跨平台wx Python应用程序,但是在每个平台上我都需要使用一些特定于平台的API.在Mac OS上,可以使用PyObjC完成. 我正在寻找有关如何使用PyObjC的教程.但是,到目前为止我发现的只是Xcode的教程.我希望我的应用程序能够在mac / win / lin上运行,无需更改,我不想在Xcode中开发它.有办法吗? UPD.更具体地说,我需要从Mac OS X访问

概述

我正在寻找有关如何使用PyObjC的教程.但是,到目前为止我发现的只是Xcode的教程.我希望我的应用程序能够在mac / win / lin上运行,无需更改,我不想在Xcode中开发它.有办法吗?

UPD.更具体地说,我需要从Mac OS X访问一些笔平板电脑事件,我想使用PyObjC(我没有看到任何其他方式).

这是一个使用pyobjc制作简单状态栏应用程序的快速示例,而不使用xcode:

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):
        NSLog('clicked!')

if __name__ == "__main__":
    app = MyApp.sharedApplication()
    AppHelper.runEventLoop()

然后,您可以使用py2app使其可分发:

from distutils.core import setup
import py2app

NAME = 'myapp'
SCRIPT = 'myapp.py'
VERSION = '0.1'
ID = 'myapp'

plist = dict(
     CFBundleName                = NAME,CFBundleShortVersionString  = ' '.join([NAME,VERSION]),CFBundleGetInfoString       = NAME,CFBundleExecutable          = NAME,CFBundleIdentifier          = 'com.yourdn.%s' % ID,LSUIElement                 = '1',#makes it not appear in cmd-tab task list etc.
)


app_data = dict(script=SCRIPT,plist=plist)

setup(
   app = [app_data],options = {
       'py2app':{
           'resources':[
               ],'excludes':[
               ]
           }
       }
)

总结

以上是编程之家为你收集整理的python – 没有Xcode的PyObjC教程全部内容,希望文章能够帮你解决python – 没有Xcode的PyObjC教程所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶