README
¶
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.
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
- Installation
- Getting Started
- Wiki
- Qt Documentation
- FAQ
- #qt-binding Slack channel (invite)
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.
Documentation
¶
Index ¶
- Variables
- func ClearSignals()
- func ConnectSignal(cPtr interface{}, signal string, function unsafe.Pointer)
- func ConnectionType(cPtr unsafe.Pointer, signal string) (m int64)
- func CountSignals() (c int)
- func Debug(fn ...interface{})
- func DisconnectAllSignals(cPtr unsafe.Pointer, signal string)
- func DisconnectSignal(cPtr interface{}, signal string)
- func DumpConnectionTypes()
- func DumpObjects()
- func DumpSignals()
- func DumpTempObjects()
- func ExistsSignal(cPtr unsafe.Pointer, signal string) (exists bool)
- func GetEnumMap(n string) (o int64, ok bool)
- func GetFuncMap(n string) (o interface{}, ok bool)
- func GetItfMap(n string) (o interface{}, ok bool)
- func GetSignal(cPtr interface{}, signal string) unsafe.Pointer
- func GoBoolToInt(b bool) int8
- func HasFinalizer(ptr interface{}) (ok bool)
- func LendSignal(cPtr unsafe.Pointer, signal string) (s unsafe.Pointer)
- func Receive(cPtr unsafe.Pointer) (o interface{}, ok bool)
- func ReceiveTemp(cPtr unsafe.Pointer) (o unsafe.Pointer, ok bool)
- func Recover(fn string)
- func Register(cPtr unsafe.Pointer, gPtr interface{})
- func RegisterConnectionType(cPtr unsafe.Pointer, signal string, mode int64)
- func RegisterTemp(cPtr unsafe.Pointer, gPtr unsafe.Pointer)
- func SetEnumMap(n string, v int64)
- func SetFinalizer(ptr interface{}, f interface{})
- func SetFuncMap(n string, v interface{})
- func SetItfMap(n string, v interface{})
- func Unregister(cPtr unsafe.Pointer)
- func UnregisterTemp(cPtr unsafe.Pointer)
Constants ¶
This section is empty.
Variables ¶
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 )
var Global jsValue
var Module jsValue
Functions ¶
func ClearSignals ¶
func ClearSignals()
func ConnectSignal ¶
func CountSignals ¶
func CountSignals() (c int)
func DisconnectAllSignals ¶
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 GetEnumMap ¶
func GetFuncMap ¶
func GoBoolToInt ¶
func HasFinalizer ¶
func HasFinalizer(ptr interface{}) (ok bool)
func RegisterConnectionType ¶
func SetEnumMap ¶
func SetFinalizer ¶
func SetFinalizer(ptr interface{}, f interface{})
func SetFuncMap ¶
func SetFuncMap(n string, v interface{})
func Unregister ¶
func UnregisterTemp ¶
Types ¶
This section is empty.