【问题标题】:python changing keyboard language in Mac OS Xpython在Mac OS X中改变键盘语言
【发布时间】:2015-07-25 05:22:49
【问题描述】:

我编写了需要德语和英语输入的 python 软件。目前,我正在使用 Mac 快捷方式 cmd-space 来快速更改键盘布局,但我需要这样做数百次,这会减慢速度。由于我确切知道何时需要英语和德语输入,有没有办法以编程方式更改 python 中的键盘语言?

我正在使用 Mac OS X Yosemite。

【问题讨论】:

    标签: python macos keyboard


    【解决方案1】:

    是的,但不好玩。

    您要查找的方法是TISSelectInputSource 和相关的TIS methods。 TIS 是一个用 C 编写的 Core Foundation 库。您需要使用 pyobjc

    真正设置好之后,过程就很简单了。使用TISCreateInputSourceList 获取您要使用的语言的TISInputSourceRef 并将其传递给TISSelectInputSource

    【讨论】:

    • 这并没有解释如何使用 Python 中的 API。
    • @chepner 我相信确实如此。 pyobjc (以及链接的特定页面)是您如何在 python 中使用这两个函数。请记住,stackoverflow 是为了帮助您解决问题,而不是为您完成所有工作。生成的 python 应该在 6 行以下。
    • 对不起,我完全忽略了对 pyobjc 的引用。
    【解决方案2】:

    TkTech 提供了一些通用指针,但似乎 pyobjc 实际上并没有包装您需要的两个 Carbon 方法(TISCreateInputSourceListTISSelectInputSource)。事实上,pyobjc 在 Python 3 中完全停止了对 Carbon 的支持。

    所以是的,pyobjc 将有助于在 Python 中调用 Objective-C 代码,但您将不得不手动包装您需要的这两个方法,可能使用 ctypes。执行此操作的代码比应有的更长且有点乏味,所以我将您链接到my implementation

    【讨论】:

      【解决方案3】:

      使用 subprocess 从 python 调用 xkbswitch 可能比您在此处找到的其他解决方案更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-11
        • 1970-01-01
        • 2011-11-11
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多