MutableTableModel¶
A PyObjC Example without documentation
Sources¶
TableModelAppDelegate.py¶
import pwd
import objc
from Foundation import NSMutableArray, NSObject
FIELDS = "name password uid gid class change expire gecos home_dir shell".split()
def getPasswords():
a = NSMutableArray()
for pw in pwd.getpwall():
a.append(
{
"name": pw.pw_name,
"password": pw.pw_passwd,
"uid": pw.pw_uid,
"gid": pw.pw_gid,
"gecos": pw.pw_gecos,
"home_dir": pw.pw_dir,
"shell": pw.pw_shell,
}
)
return a
class TableModelAppDelegate(NSObject):
def passwords(self):
if not hasattr(self, "_cachedpasswords"):
self._cachedpasswords = getPasswords()
return self._cachedpasswords
@objc.IBAction
def insertRecord_(self, sender):
passwords = self.passwords()
self.willChangeValueForKey_("passwords")
passwords.append(dict(zip(FIELDS, FIELDS)))
self.didChangeValueForKey_("passwords")
main.py¶
#
# __main__.py
# TableModel
#
# Created by Bob Ippolito on Sun Apr 04 2004.
# Copyright (c) 2004 Bob Ippolito. All rights reserved.
#
# import classes required to start application
import TableModelAppDelegate # noqa: F401
from PyObjCTools import AppHelper
# start the event loop
AppHelper.runEventLoop(argv=[])
setup.py¶
"""
Script for building the example, alternative to the Xcode project.
Usage:
python3 setup.py py2app
"""
from setuptools import setup
setup(
name="MutableTableModel",
app=["main.py"],
data_files=["English.lproj"],
setup_requires=["py2app", "pyobjc-framework-Cocoa"],
)