← back

Coming from Qt / C++

If you've built desktop apps with Qt, tape's component model will feel natural — but without the framework overhead, MOC step, or C++ complexity.

signals & slots

Qt

signals: and slots: in class header. MOC generates glue code. Runtime string-based connection.

Tape

event on_click() + fire on_click(). Typed function pointer — resolved at compile time. No MOC, no runtime lookup.

widget hierarchy

Qt

QWidget inheritance tree. Override paintEvent, sizeHint. Parent-child ownership.

Tape

No inheritance. Components compose via slot and view {} trees. Leaf components implement paint/measure.

styling

Qt

QSS (Qt Style Sheets) — CSS subset, applied at runtime, string-based selectors.

Tape

#style region — sets typed props on components. Compile-time validated. No runtime selector engine.

build system

Qt

CMake + MOC + UIC + RCC. Separate .ui files, .qrc resources, .h/.cpp split.

Tape

tape build app.tape -o app.exe — one command. Components, styles, resources, tests all in .tape files.

what stays the same

  • - Native compiled (no interpreter in prod)
  • - Component-based UI architecture
  • - Props/properties drive component state
  • - Custom painting for leaf widgets
  • - Desktop-first (not web-to-native)