QTutorial provides an easy way to add step-by-step tutorials to your PySide6 apps. It features element highlighting, responsive hint positioning, and customizable tutorial steps.
The following sequence diagram illustrates the core workflow of QTutorial:
- Interactive tutorial overlay
- UI element highlighting
- Step-by-step guidance
- Customizable tutorial steps
- Responsive hint positioning
- Keyboard navigation support
- Python 3.10+
- PySide6
Installation Guide
-
Clone this repository:
git clone https://github.com/HardMax71/qtutorial.git
-
Navigate to the project directory:
cd qtutorial -
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS and Linux:
source venv/bin/activate -
Install the required packages:
pip install requirements.txt # or pip install PySide6 -
Run the application:
python main.py
The application will start with the tutorial mode automatically activated.
To customize the tutorial:
- Modify the
tutorial_stepslist in theMainWindowclass. - Adjust the UI layout in the
MainWindowclass. - Customize styles by editing the QSS files:
tutorial_hint.qss: Style for the tutorial hint boxhighlight.qss: Style for highlighted elementsstart_style.qss: General application style
qtutorial/
│
├── files/
│ └── example.gif
├── qtutorial/
│ ├── styles/
│ │ ├── highlight.qss
│ │ └── tutorial_hint.qss
│ ├── icons/
│ | ├── back-button.png
│ | └── ...
│ ├── init.py
│ ├── hint.py
│ ├── tutorial_manager.py
│ └── utils.py
├── .gitignore
├── LICENSE
├── main.py
├── README.md
└── start_style.qss
files/: Contains additional resourcesexample.gif: Demonstration of the tutorial system
qtutorial/: Core package of the tutorial systemstyles/: QSS stylesheets for the tutorial componentsicons/: Icon resources__init__.py: Package initializerhint.py: Implements the tutorial hint widgettutorial_manager.py: Manages the tutorial flowutils.py: Utility functions including stylesheet loading
main.py: Main application scriptstart_style.qss: General application stylesheet
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.

