A small Python GUI application built with PySide6 and Qt that displays a romantic multi-screen visual interface. The app uses a QStackedWidget to switch between several custom page widgets, each rendered with images, text, and interactive buttons.
- Multi-page Qt interface using
QStackedWidget - Custom page widgets derived from
QWidget - Image-based buttons and screen flow
- Clickable answers and interactive UI behavior
- Wrong answer buttons can disappear when clicked
- Animated screen transitions using
QTimer - Layouts mixed with absolute button positioning for a custom visual experience
This project uses PySide6, the official Python bindings for Qt 6.
Key Qt components used:
QApplication- application object and event loopQMainWindow- main window containerQStackedWidget- stack of pages for navigationQWidget- base class for custom pagesQLabel- image and text displayQPushButton- interactive buttonsQVBoxLayout- basic vertical layout for page contentQPixmap- image loadingQTimer- delayed actions and timed behavior
The interface is implemented in interface/interface.py.
MainWindow creates the application window and hosts a QStackedWidget. It instantiates ten page widgets and adds them to the stack.
The app uses page classes such as:
FirstPage- welcome screen with a start buttonSecondPage- yes/no question where the "No" button moves randomlyThirdPage- image selection screenFourthPage- a page with multiple clickable image buttonsFifthPage- answer screen with wrong options that disappear when clickedSixthPagethroughTenthPage- additional screens with image buttons and final content
Each page class sets up its UI in init_ui() and uses signals like clicked.connect(...) to change the currently displayed page.
Wrong answer buttons are handled in FifthPage by connecting buttons to a lambda that calls fail_attempt(). If the user clicks a wrong button, the button is removed from the interface with deleteLater().
- Install dependencies:
pip install PySide6- Run the application:
python3 interface/interface.py- Make sure the
images/folder is present and contains the image files referenced inFIGURE_MAPPING.
interface/interface.py- main application codeinterface/interface.css- application stylesheet loaded at runtimeimages/- image assets used by the UIREADME.md- project documentation
- The UI uses a combination of layouts and explicit widget positioning.
interface/interface.cssprovides the app-wide styling applied to theQApplication.- The app is designed as a personalized visual experience and demonstrates simple Qt navigation patterns.