# go-qml/qml

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/go-qml-qml).**

1,950 stars · 187 forks · Go · NOASSERTION

## Links

- GitHub: https://github.com/go-qml/qml
- awesome-repositories: https://awesome-repositories.com/repository/go-qml-qml.md

## Description

Qml is a Go library that integrates with Qt QML to build native graphical user interfaces and cross-platform desktop applications. It functions as a bindings bridge, connecting backend code directly to a cross-platform windowing toolkit and combining C++ and declarative UI components with compiled programming languages.

The library relies on a Cgo-based foreign function interface to bridge Go runtime routines directly with native C++ object models. It features dynamic type registration to expose native Go types and methods to the declarative QML engine at runtime without intermediate stub code, along with event loop message integration that synchronizes the Go concurrency scheduler with the native Qt event loop. Additionally, a Qt object binding bridge connects dynamic QML properties and signals directly to compiled Go structs and functions via reflection.

## Tags

### User Interface & Experience

- [Graphical User Interfaces](https://awesome-repositories.com/f/user-interface-experience/graphical-user-interfaces.md) — Constructs native graphical user interfaces by binding programming languages directly with cross-platform windowing toolkits. ([source](https://github.com/go-qml/qml/blob/v1/README.md))
- [Cross-Platform GUI Toolkits](https://awesome-repositories.com/f/user-interface-experience/cross-platform-gui-toolkits.md) — Constructs native graphical user interfaces for multiple operating systems using declarative UI frameworks and language bindings.
- [Go QML Frameworks](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-languages/qml-declarative-uis/go-qml-frameworks.md) — Builds desktop applications in Go by combining backend logic with declarative QML user interfaces for cross-platform apps.

### Part of an Awesome List

- [Go Desktop Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/go-desktop-frameworks.md) — Develops native desktop software with the Go programming language by connecting to windowing toolkits and UI engines.

### Development Tools & Productivity

- [Event Loop Message Integrations](https://awesome-repositories.com/f/development-tools-productivity/event-loop-integrations/event-loop-message-integrations.md) — Synchronises the Go concurrency scheduler with the native Qt event loop to handle UI threads safely.
- [Qt Framework Integrations](https://awesome-repositories.com/f/development-tools-productivity/qt-framework-integrations.md) — Provides a development bridge for combining C++ and Qt QML declarative UI components with other compiled programming languages.

### Programming Languages & Runtimes

- [Go Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/c-shared-library-bindings/go-bindings.md) — Functions as a Go library that integrates with Qt QML to build native graphical user interfaces and cross-platform desktop applications.
- [QML Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/c-shared-library-bindings/go-bindings/qml-bindings.md) — Provides a Go library that integrates with Qt QML to build native graphical user interfaces and cross-platform desktop applications.
- [Cgo Native Interop](https://awesome-repositories.com/f/programming-languages-runtimes/cgo-native-interop.md) — Executes compiled Cgo bindings to safely bridge Go runtime routines directly with native C++ object models.

### Software Engineering & Architecture

- [Dynamic Type Registrations](https://awesome-repositories.com/f/software-engineering-architecture/custom-type-method-registration/dynamic-type-registrations.md) — Exposes native Go types and methods to the declarative QML engine at runtime without intermediate stub code.
- [Qt Object Binding Bridges](https://awesome-repositories.com/f/software-engineering-architecture/reflection-based-unmarshallers/host-object-binding/qt-object-binding-bridges.md) — Connects dynamic QML properties and signals directly to compiled Go structs and functions via reflection.
