qt5 bindings for go
Lua C++ Go Other
Pull request Compare This branch is 102 commits ahead, 7 commits behind visualfc:master.
Latest commit b124b1f Jul 21, 2016 @salviati committed on GitHub Merge pull request #30 from mutse/master
Add lcdnumber.lua & lcdnumber.go example

README.md

#go-qt5

##Before you start This is a fork of visualfc's qt4 bindings, and several critical bugs are inherited along the way. Until these bugs are fixed, this package is not recommended for any real use. I don't have any time to actively work on this project, but I'll keep reviewing and merging pull requests.

Meanwhile, have a look at QML bindings for Go.

##Before filing an issue

  • Please read the above section first.
  • Make sure it's specifically about the go-qt5 wrappers, and not "how do I do XYZ in Qt?". Such questions are better placed in Qt5 forums.
  • If you find that go-qt5 lacks the wrapper for a particular class you need, feel free to send a patch.

##Introduction go-qt5 provides with qt5 bindings for Go programming language, based on visualfc's go-ui library.

Lua code that generates the wrappers (uiobjs.go and cdrv.cpp) can be found under make.

The wrapper code is by far incomplete, so pull requests are more than welcome. Adding new functionality usually consists of editing or adding files under make/qt5, and updating make/make.lua script, and making relevant changes in qt5 and qtdrv.

##License go-qt5 lib BSD qtdrv lib LGPL

##Using go-qt5

###1. get go-qt5 $ go get github.com/salviati/go-qt5 ###2. generate bindings $ cd $GOPATH/src/github.com/salviati/go-qt5/make $ lua make.lua $ lua makelib.lua ###3. build & install C layer $ cd $GOPATH/src/github.com/salviati/go-qt5/goqtdrv5 $ qmake "CONFIG+=release" $ make # make install ###4.build go-qt5 $ cd $GOPATH/src/github.com/salviati/go-qt5/qt5 $ go install ###5.build examples $ cd $GOPATH/src/github.com/salviati/go-qt5/examples $ go run minimal.go

##A minimal example

package main

import (
    "github.com/salviati/go-qt5/qt5"
)

func main() {
    qt5.Main(func() {
	    w := qt5.NewWidget()
	    w.SetWindowTitle(qt5.Version())
	    w.SetSizev(300, 200)
	    defer w.Close()
	    w.Show()
	    qt5.Run()
    })
}