package module
Version: v0.0.0-...-c0c124a Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2020 License: LGPL-3.0 Imports: 6 Imported by: 208



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.


Gallery of example applications.

JavaScript Demo | source


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)
go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && for /f %v in ('go env GOPATH') do %v\bin\widgets.exe
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


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


This package is released under LGPLv3

Qt itself is licensed and available under multiple licenses.




This section is empty.


View Source
var (
	Logger = log.New(os.Stderr, "", log.Ltime)

	FuncMap      = make(map[string]interface{})
	FuncMapMutex sync.Mutex
	ItfMap       = make(map[string]interface{})

	EnumMap      = make(map[string]int64)
	EnumMapMutex sync.Mutex
View Source
var Global jsValue
View Source
var Module jsValue


func ClearSignals

func ClearSignals()

func ConnectSignal

func ConnectSignal(cPtr interface{}, signal string, function unsafe.Pointer)

func ConnectionType

func ConnectionType(cPtr unsafe.Pointer, signal string) (m int64)

func CountSignals

func CountSignals() (c int)

func Debug

func Debug(fn ...interface{})

func DisconnectAllSignals

func DisconnectAllSignals(cPtr unsafe.Pointer, signal string)

func DisconnectSignal

func DisconnectSignal(cPtr interface{}, signal string)

func DumpConnectionTypes

func DumpConnectionTypes()

func DumpObjects

func DumpObjects()

func DumpSignals

func DumpSignals()

func DumpTempObjects

func DumpTempObjects()

func ExistsSignal

func ExistsSignal(cPtr unsafe.Pointer, signal string) (exists bool)

func GetEnumMap

func GetEnumMap(n string) (o int64, ok bool)

func GetFuncMap

func GetFuncMap(n string) (o interface{}, ok bool)

func GetItfMap

func GetItfMap(n string) (o interface{}, ok bool)

func GetSignal

func GetSignal(cPtr interface{}, signal string) unsafe.Pointer

func GoBoolToInt

func GoBoolToInt(b bool) int8

func HasFinalizer

func HasFinalizer(ptr interface{}) (ok bool)

func LendSignal

func LendSignal(cPtr unsafe.Pointer, signal string) (s unsafe.Pointer)

func Receive

func Receive(cPtr unsafe.Pointer) (o interface{}, ok bool)

func ReceiveTemp

func ReceiveTemp(cPtr unsafe.Pointer) (o unsafe.Pointer, ok bool)

func Recover

func Recover(fn string)

func Register

func Register(cPtr unsafe.Pointer, gPtr interface{})

func RegisterConnectionType

func RegisterConnectionType(cPtr unsafe.Pointer, signal string, mode int64)

func RegisterTemp

func RegisterTemp(cPtr unsafe.Pointer, gPtr unsafe.Pointer)

func SetEnumMap

func SetEnumMap(n string, v int64)

func SetFinalizer

func SetFinalizer(ptr interface{}, f interface{})

func SetFuncMap

func SetFuncMap(n string, v interface{})

func SetItfMap

func SetItfMap(n string, v interface{})

func Unregister

func Unregister(cPtr unsafe.Pointer)

func UnregisterTemp

func UnregisterTemp(cPtr unsafe.Pointer)


This section is empty.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL