You've heard the pitch: modern Python GUIs with GPU acceleration, professional themes, and components that don't look like they escaped from 1998. But what does it actually look like to build something with Bravura SDK? This tutorial takes you from installation to a working, styled application in about 30 minutes.
What You'll Build
By the end of this tutorial, you'll have a desktop note-taking application with:
- A professional dark theme with smooth hover effects
- Text input area with styled scrollbar
- Save and load functionality
- A sidebar with navigation
- Responsive layout that adapts to window resizing
The entire app will be under 80 lines of Python. No CSS files, no HTML templates, no JavaScript — just Python.
Prerequisites
Before you start, make sure you have:
- Python 3.9 or higher — Bravura SDK supports Python 3.9 through 3.13
- pip — For installing the SDK package
- A valid Bravura SDK license — Get one here (Standard tier works for this tutorial)
Which Tier Do You Need?
This tutorial uses components available in all tiers. The Standard tier ($49.99/month or $1,999.99 one-time) includes everything shown here: themed widgets, layout managers, event handling, and file I/O integration. Professional and Enterprise tiers add GPU acceleration, advanced components, and priority support.
Step 1: Installation
Install the Bravura SDK package via pip using your license credentials:
The activation step validates your license and configures the SDK for your machine. You only need to do this once per installation. After activation, the SDK is ready to use in any Python script.
Step 2: The Minimal App
Let's start with the absolute minimum — a window with a theme:
That's it. Four lines, and you have a GPU-accelerated window with the Midnight theme applied. The theme handles colors, fonts, borders, hover states, scrollbar styling, and focus indicators. No configuration needed.
Available Themes
Bravura SDK ships with 13 professional themes: MIDNIGHT (dark blue), BLACK (pure dark), WHITE (light), CORPORATE (navy/steel), OCEAN (calming blue), and more. Every widget automatically inherits the active theme. Switch themes with a single line change.
Step 3: Adding a Layout
Bravura uses a panel-based layout system. Panels are containers that arrange their children horizontally or vertically. Let's create a sidebar and a main content area:
The direction="horizontal" parameter tells the root panel to lay out its children side by side. The sidebar has a fixed width, while the content area uses expand=True to fill the remaining space. Resize the window and the layout adapts automatically.
Step 4: Interactive Components
Now let's add the actual note-taking functionality — a text area for writing and buttons for saving:
A few things to notice:
- Button styling is automatic. The
style="primary"parameter applies the theme's primary action color, hover effect, and click animation. No CSS needed. - TextArea scales naturally. With
expand=True, the text area fills all available vertical space. Type as much as you want — it scrolls with a styled scrollbar. - Event binding is Pythonic. The
on_clickparameter accepts any callable. No event loop boilerplate, no signal/slot patterns.
Step 5: Polish and Ship
Let's add some finishing touches that take the app from "works" to "feels professional":
Keyboard shortcuts, status feedback, and styled captions — all in a few lines. The resulting application looks and feels like native software. No electron wrapper, no web view, no 200MB runtime. Just Python and a GPU-accelerated render pipeline.
What You Get Out of the Box
Beyond the components used in this tutorial, Bravura SDK includes a full widget library:
| Category | Components |
|---|---|
| Input | Button, TextInput, TextArea, Checkbox, Radio, Toggle, Slider, Dropdown, DatePicker |
| Display | Label, Image, Icon, Badge, ProgressBar, Spinner, Card, Table |
| Layout | Panel, Grid, Tabs, Accordion, Sidebar, SplitView, ScrollView |
| Feedback | Toast, Modal, Dialog, Tooltip, Notification, StatusBar |
| Navigation | MenuBar, ContextMenu, Breadcrumb, Pagination, Toolbar |
Every component respects the active theme, supports keyboard navigation, and handles high-DPI displays correctly. You build your application logic. Bravura handles the rest.
Common Patterns
Responsive Layouts
Bravura panels automatically handle responsive behavior. Use expand=True for flexible children, fixed widths/heights for rigid sections, and min_width/max_width for constrained flexibility. The layout engine recalculates on every resize event — GPU-accelerated, so there's no stutter.
State Management
For simple apps, Python variables and callbacks work perfectly (as shown above). For larger applications, Bravura provides a reactive state system where UI components automatically update when their bound data changes. No manual refresh calls needed.
File Dialogs
File dialogs are native to the operating system. Bravura wraps them in a clean API without losing platform-native behavior.
Next Steps
This tutorial covered the fundamentals — windows, themes, layouts, components, events, and file I/O. From here, you can:
- Explore the component library — The Bravura SDK documentation includes interactive examples for every widget
- Try different themes — Switch from MIDNIGHT to WHITE for a light-mode experience, or try OCEAN for a calming aesthetic
- Add GPU effects (Professional tier) — Shadows, blur, animated gradients, and transition effects that run at 60 FPS
- Package your app — Bravura apps can be packaged with PyInstaller or similar tools for distribution as standalone executables
From Tutorial to Production
The note-taking app in this tutorial is intentionally simple. Real-world Bravura applications include data dashboards, admin panels, audio editors, scientific tools, and customer-facing software used by thousands. The same components scale from prototype to production.
Python has always been one of the fastest languages to prototype with. With Bravura SDK, the prototype is the production app. No rewrite in another framework, no compromises on visual quality, no "it works but it looks like a developer made it" disclaimers. Build once, ship something you're proud of.
Ready to Build?
Get started with Bravura SDK and see what professional Python desktop development looks like.
Explore Bravura SDK