Skip to content

QML bindings for the Zig programming language

License

Notifications You must be signed in to change notification settings

kassane/qml_zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QML-zig

GitHub All Releases GitHub release (latest by date) GitHub

Bindings are based on DOtherSide C bindings for QML Library is mostly feature-compliant with other bindings based on the library, but lacks some minor features and has quite a few bugs.

Preview

qml_zig

Build - Steps

Requirements

All software required for building.

  • Qt 5.15 or higher
  • Zig v0.12.0, 0.13.0 or master
  • CMake v3.2 or higher (DOtherSide build)

Question

Works on Qt6?

Maybe, check DOtherSide support!!

Instructions

# Clone repo
git clone --recursive https://github.com/kassane/qml_zig

# Open folder
cd qml_zig

# build DOtherSide
zig build cmake

# Build
zig build ExampleName -Doptimize=ReleaseSafe|-Doptimize=ReleaseFast|-Doptimize=ReleaseSmall

Examples

zig build Animated - Run an Animated Box

zig build Hello - Hello World, with Menu and Clickable Button

zig build Cells - Cells example from QML Tute, click a color to change the text

zig build Button - Button with 2-way comms to the Zig code

zig build Layouts - Layouts examples

zig build Splits - Splitview example

zig build Tables - Tableview example

Work in Progres Examples

zig build Particle - Particle system example

  • Needs QObject wrapper working yet, to pass zig objects to the QML side

Status

  • Basic initialization and execution
  • More Examples - thanks @zigster64!
  • Providing properties to QML files

TODO

  • QAbstractListModels
  • QObject - working progress
  • QStyle