qt README

The project's README from github.com/therecipe/qt. As one markdown file: README.md.

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.

qt (therecipe/qt)

Searching Database…

10.8K ·GitHub
Что это такое?therecipe/qt — набор привязок языка Go к GUI-инструментарию Qt, который позволяет создавать полноценные нативные графические приложения целиком на Go (а также на JavaScript/TypeScript, Dart/Flutter, Haxe или Swift).
Это собственный GUI-фреймворк или просто привязки к Qt?Это слой привязок, который открывает существующий инструментарий виджетов Qt на C++ для Go — вы вызываете настоящие классы и функции Qt прямо из кода на Go, а не используете набор виджетов, написанный на Go.
Как собрать приложение на Qt с этим инструментом?После установки Go и Git выберите either экспериментальную версию без cgo (её рекомендуется попробовать первой) или стандартную версию; для каждой из них есть свои шаги настройки для Windows, macOS и Linux, описанные в документации по установке.
Нужно ли заранее настроить Go и Git?Да — инструкции по установке предполагают, что Go и Git уже установлены до добавления привязок.
Можно ли собирать и развертывать приложение для всех платформ одинаково?Нет — для большинства платформ (Windows, macOS, Linux, Android, Raspberry Pi, JS, WebAssembly и др.) доступно развертывание через Docker с любой ОС-хоста, но для iOS и iOS-Simulator сборка требует macOS, для AsteroidOS — Linux, а для FreeBSD — FreeBSD; для этих четырёх платформ развертывание через Docker недоступно.
Какие языки, кроме Go, можно использовать с этими привязками?Проект также поддерживает написание приложений Qt на JavaScript/TypeScript, Dart/Flutter, Haxe и Swift, помимо Go.
Можно ли развернуть готовое приложение через Docker?Да, для большинства целевых платформ (Windows, macOS, Linux, Android, Raspberry Pi, Ubuntu Touch, Sailfish OS, JavaScript, WebAssembly) проект поддерживает развертывание через Docker с любой ОС-хоста.
Насколько полно из Go доступен Qt?Почти все функции и классы Qt доступны, так что можно создавать полнофункциональные приложения на Qt, а не ограниченный набор виджетов.
Зачем выбирать это, а не нативную GUI-библиотеку для Go?Это даёт доступ к зрелому, проверенному временем инструментарию виджетов Qt и его широкому охвату платформ (от настольных ОС до Sailfish OS, AsteroidOS и WebAssembly), а не к более небольшой экосистеме GUI, написанной только на Go.
What are similar projects?moonshine, kivy, PySimpleGUI, fyne, sherpa-onnx, ebiten, supertonic, mygo
Creator
therecipe
Size
171.8 MB
Stars
10.8K
Updated
CommitSep 04
Age
11y
Commits · 90 Days