MCPcopy Index your code
hub / github.com/therecipe/qt

github.com/therecipe/qt @main

repository ↗ · DeepWiki ↗ · + Follow
72,165 symbols 252,137 edges 526 files 1,598 documented · 2% updated 2y ago★ 10,809368 open issues
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.

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.

Extension points exported contracts — how you extend this code

QObject_ITF (Interface)
(no doc) [2 implementers]
core/core.go
CertificateErrorController_ITF (Interface)
(no doc) [1 implementers]
webengine/webengine.go
QGeoCodeReply_ITF (Interface)
(no doc) [1 implementers]
location/location.go
QAbstractMessageHandler_ITF (Interface)
(no doc) [1 implementers]
xmlpatterns/xmlpatterns.go
QCanBus_ITF (Interface)
(no doc) [1 implementers]
serialbus/serialbus.go
QSql_ITF (Interface)
(no doc) [1 implementers]
sql/sql.go
QQmlWebChannel_ITF (Interface)
(no doc) [1 implementers]
webchannel/webchannel.go
QScriptClass_ITF (Interface)
(no doc) [1 implementers]
script/script.go

Core symbols most depended-on inside this repo

CallLocalFunction
called by 35580
internal/internal.go
Pointer
called by 5735
internal/binding/files/utils-qml.go
CallLocalAndDeregisterRemoteFunction
called by 4981
internal/internal.go
CallLocalAndRegisterRemoteFunction
called by 4973
internal/internal.go
QObject_PTR
called by 3470
core/core.go
SetPointer
called by 2269
qt.go
ClassNameInternalF
called by 1143
widgets/widgets.go
ClassNameInternalF
called by 1140
multimedia/multimedia.go

Shape

Method 57,739
Function 8,904
Struct 2,334
Interface 2,107
TypeAlias 1,074
Class 7

Languages

Go100%
TypeScript1%
Java1%

Modules by API surface

widgets/widgets.go12,159 symbols
gui/gui.go9,549 symbols
multimedia/multimedia.go8,169 symbols
core/core.go7,936 symbols
charts/charts.go3,048 symbols
sensors/sensors.go2,563 symbols
quick/quick.go2,507 symbols
network/network.go2,366 symbols
datavisualization/datavisualization.go1,888 symbols
designer/designer.go1,789 symbols
webkit/webkit.go1,579 symbols
webengine/webengine.go1,213 symbols

Dependencies from manifests, versioned

github.com/gopherjs/gopherjsv0.0.0-2019041100264 · 1×
github.com/konsorten/go-windows-terminal-sequencesv1.0.2 · 1×
github.com/stretchr/objxv0.2.0 · 1×
golang.org/x/cryptov0.0.0-2019041816565 · 1×
golang.org/x/netv0.0.0-2019042006301 · 1×
golang.org/x/sysv0.0.0-2019041915352 · 1×
golang.org/x/toolsv0.0.0-2019042018180 · 1×

For agents

$ claude mcp add qt \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact