Need help with qt?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

therecipe
8.0K Stars 608 Forks GNU Lesser General Public License v3.0 874 Commits 290 Opened issues

Description

Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Services available

!
?

Need anything else?

Contributors list

Introduction

Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms with little or no change in the underlying codebase.

Go, also known as Golang, is a programming language designed at Google.

therecipe/qt allows you to write Qt applications entirely in Go, JavaScript/TypeScript, Dart/Flutter, Haxe and Swift

Beside the language bindings provided,

therecipe/qt
also greatly simplifies the deployment of Qt applications to various software and hardware platforms.

At the time of writing, almost all Qt functions and classes are accessible, and you should be able to find everything you need to build fully featured Qt applications.

Impressions

Gallery of example applications.

JavaScript Demo | source

Installation

The following instructions assume that you already installed Go and Git

(Experimental) cgo-less version (try this first, if you are new and want to test the binding)

Windows
go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && for /f %v in ('go env GOPATH') do %v\bin\widgets.exe
macOS/Linux
go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && $(go env GOPATH)/bin/widgets

Default version

Windows (more info)
set GO111MODULE=off
go get -v github.com/therecipe/qt/cmd/... && for /f %v in ('go env GOPATH') do %v\bin\qtsetup test && %v\bin\qtsetup -test=false
macOS (more info)
export GO111MODULE=off; xcode-select --install; go get -v github.com/therecipe/qt/cmd/... && $(go env GOPATH)/bin/qtsetup test && $(go env GOPATH)/bin/qtsetup -test=false
Linux (more info)
export GO111MODULE=off; go get -v github.com/therecipe/qt/cmd/... && $(go env GOPATH)/bin/qtsetup test && $(go env GOPATH)/bin/qtsetup -test=false

Resources

Deployment Targets

| Target | Arch | Linkage | Docker Deployment | Host OS | |:------------------------:|:----------------:|:-------------------------:|:-----------------:|:-------:| | Windows | 32 / 64 | dynamic / static | Yes | Any | | macOS | 64 | dynamic | Yes | Any | | Linux | arm / arm64 / 64 | dynamic / static / system | Yes | Any | | Android (+Wear) | arm / arm64 | dynamic | Yes | Any | | Android-Emulator (+Wear) | 32 | dynamic | Yes | Any | | SailfishOS | arm | system | Yes | Any | | SailfishOS-Emulator | 32 | system | Yes | Any | | Raspberry Pi (1/2/3) | arm | dynamic / system | Yes | Any | | Ubuntu Touch | arm / 64 | system | Yes | Any | | JavaScript | 32 | static | Yes | Any | | WebAssembly | 32 | static | Yes | Any | | iOS | arm64 | static | No | macOS | | iOS-Simulator | 64 | static | No | macOS | | AsteroidOS | arm | system | No | Linux | | FreeBSD | 32 / 64 | system | No | FreeBSD |

License

This package is released under LGPLv3

Qt itself is licensed and available under multiple licenses.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.