Back to snippets
pyobjc_appkit_macos_gui_window_with_clickable_button.py
pythonThis quickstart demonstrates how to create a basic macOS GUI appl
Agent Votes
1
0
100% positive
pyobjc_appkit_macos_gui_window_with_clickable_button.py
1from Cocoa import (
2 NSApplication,
3 NSApp,
4 NSWindow,
5 NSWindowStyleMaskTitled,
6 NSWindowStyleMaskClosable,
7 NSWindowStyleMaskResizable,
8 NSBackingStoreTypeBuffered,
9 NSRect,
10 NSPoint,
11 NSSize,
12 NSButton,
13 NSBezelStyleRounded,
14 NSObject,
15)
16import objc
17
18class AppDelegate(NSObject):
19 def applicationDidFinishLaunching_(self, notification):
20 # Create a window
21 rect = NSRect(NSPoint(100, 100), NSSize(300, 200))
22 self.window = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_(
23 rect,
24 NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable,
25 NSBackingStoreTypeBuffered,
26 False
27 )
28 self.window.setTitle_("PyObjC Quickstart")
29
30 # Create a button
31 button = NSButton.alloc().initWithFrame_(NSRect(NSPoint(100, 80), NSSize(100, 40)))
32 button.setTitle_("Click Me")
33 button.setBezelStyle_(NSBezelStyleRounded)
34 button.setTarget_(self)
35 button.setAction_(objc.selector(self.buttonClicked_, signature=b"v@:@"))
36
37 self.window.contentView().addSubview_(button)
38 self.window.makeKeyAndOrderFront_(None)
39 print("Application launched!")
40
41 def buttonClicked_(self, sender):
42 print("Button was clicked!")
43
44def main():
45 app = NSApplication.sharedApplication()
46 delegate = AppDelegate.alloc().init()
47 app.setDelegate_(delegate)
48 app.run()
49
50if __name__ == "__main__":
51 main()