Qt binding for Go (Golang) aims get Go's compile speed again.
Qt5 binding for Go (Golang) without CGO that aims to achieve Go's native compile speeds. Instead of using common bindings and heavy C++ wrapper code that forces you to compile and link time and time again, Qt.Go uses FFI so there's only a runtime dependency.
All platforms should be supported, for now some of them are tested:
Make sure libffi is installed
Debian based: apt-get install libffi-dev
Arch based: pacman -S libffi
MacOS: brew install libffi
go get -v -u github.com/kitech/qt.go
git clone https://github.com/kitech/qt.inline.git
cd qt.inline
cmake .
make
cp libQt5Inline.so /usr/lib/libQt5Inline.so
go get -v -u github.com/kitech/qt.go/cmd/go-uic
go get -v -u github.com/kitech/qt.go/cmd/go-rcc
package main
import "os"
import "github.com/kitech/qt.go/qtwidgets"
func main() {
app := qtwidgets.NewQApplication(len(os.Args), os.Args, 0)
btn := qtwidgets.NewQPushButton1("hello qt.go", nil)
btn.Show()
app.Exec()
}
More complex examples: https://github.com/kitech/qt.go/examples/ https://github.com/qtchina/qt.go.demos/
Go side signal/slot: syntax document usage demo
Qt.Go uses FFI to call wrapped Qt functions and methods, so there is no compile/link time dependency on Qt, only a run time dependency.
This should make the development and testing phases much faster.