Welcome to qtstrap's documentation

qtstrap is a framework that helps you skip over the boring and tedious parts of developing applications with PySide2/PyQt.

Features

  • qtstrap command line tool to bootstrap new projects
  • crossplatform makefile with useful development commands
  • preconfigured pyinstaller spec file
  • preconfigured InnoSetup setup compiler script
  • Pythonic layout system using ContextLayouts
  • light/dark theme with application-level theme switching
  • Some other stuff I haven't remembered yet

Custom Widgets

  • LabelEdit
  • HLine and VLine
  • LinkLabel

Buttons:

  • StateButton
  • IconToggleButton
  • ConfirmToggleButton
  • MenuButton

Persistent Widgets (for rapid prototyping of saved data)

  • PersistentCheckableAction
  • PersistentCheckBox
  • PersistentComboBox
  • PersistentLineEdit
  • PersistentListWidget
  • PersistentPlainTextEdit
  • PersistentTabWidget
  • PersistentTextEdit
  • PersistentTreeWidget

Utility Classes and Functions

  • Adapter
  • TimeStamp
  • StringBuilder
  • call_later()

decorators:

  • @accepts_file_drops
  • @trace
  • @singleton

context managers:

  • Defer
  • SignalBlocker

qtstrap.extras:

  • CommandPalette, like VSCode or SublimeText
  • Logging Subsystem: log to local database + log viewer widgets
  • CodeEditor: Custom QTextEditor subclass customized for code editing

Roadmap

  • Write documentation for ContextLayouts
  • Create a sane menu bar constructor
  • Create an application auto-updater
  • Create an application crash reporter
  • Set up CI/CD
  • Add 'Qt principles' section