gpt4 book ai didi

python - 带有 PyObjC 和 Interface Builder 的 IBoutlet

转载 作者:太空宇宙 更新时间:2023-11-04 09:21:38 28 4
gpt4 key购买 nike

我正在使用 Python 和 PyObjC 编写一个简单的 OSX 应用程序。我使用 Interface Builder 设计了设置对话框,并使用 ibtool 对其进行编译,然后从 Python 加载它。问题是如何从 Python 代码访问我在这个窗口中的控件?我之前玩过 iPhone 开发,我记得我需要在 Controller 类中有一个 IBOutlet,它将连接到界面构建器中的 UI 控件。在 Python 中它应该看起来像这样:

class MyClass(NSObject):
my_outlet = objc.IBOutlet('my_outlet')

但由于我不在 XCode 中工作(我只有一个 .py 文件和一个 .xib 文件),Interface Builder 不知道我的 socket 。在这种情况下我该如何进行绑定(bind)?或者我还能如何从代码访问 UI 元素?

最佳答案

首先,是否使用Xcode与NIB加载无关(除了更方便)。

正如 Ole 所说,您可以使用 IB 将您需要的 socket 手动添加到文件所有者或 NIB 文件中的自定义对象实例。通过这样做,一切都会“正常工作”。

然而,这个陈述是促使我做出相对相似的回答的原因:

all I have is a .py file and a .xib file

您是否正在尝试在 .app 包装器之外编写一些 UI 代码?如果是这样,那就是一个完全不受支持的模式,很难得到正确的,并且很可能会突破软件更新或主要版本(就像过去多次发生的那样)。

解决问题的最佳方法是使用 Xcode 项目并构建标准应用程序。模板不再随开发工具一起提供。只需单独下载它们。

如果您需要从命令行运行它,您仍然可以这样做。

关于python - 带有 PyObjC 和 Interface Builder 的 IBoutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1887102/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com