QML support for the Go language

QML support for the Go language

Documentation

The introductory documentation as well as the detailed API documentation is available at gopkg.in/qml.v1.

Blog posts

Some relevant blog posts:

Videos

These introductory videos demonstrate the use of Go QML:

Community

Please join the mailing list for following relevant development news and discussing project details.

Installation

To try the alpha release you'll need:

  • Go >= 1.2, for the C++ support of go build
  • Qt 5.0.X or 5.1.X with the development files
  • The Qt headers qmetaobject_p.h and qmetaobjectbuilder_p.h, for the dynamic meta object support

See below for more details about getting these requirements installed in different environments and operating systems.

After the requirements are satisfied, go get should work as usual:

go get gopkg.in/qml.v1

Requirements on Ubuntu

If you are using Ubuntu, the Ubuntu SDK will take care of the Qt dependencies:

$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$ sudo apt-get update
$ sudo apt-get install qtdeclarative5-dev qtbase5-private-dev qtdeclarative5-private-dev libqt5opengl5-dev qtdeclarative5-qtquick2-plugin

and Go >= 1.2 may be installed using godeb:

$ # Pick the right one for your system: 386 or amd64
$ ARCH=amd64
$ wget -q https://godeb.s3.amazonaws.com/godeb-$ARCH.tar.gz
$ tar xzvf godeb-$ARCH.tar.gz
godeb
$ sudo mv godeb /usr/local/bin
$ godeb install
$ go get gopkg.in/qml.v1

Requirements on Ubuntu Touch

After following the installation instructions for Ubuntu Touch, run the following commands to get a working build environment inside the device:

$ adb shell
# cd /tmp
# wget https://github.com/go-qml/qml/raw/v1/cmd/ubuntu-touch/setup.sh
# /bin/bash setup.sh
# su - phablet
$

At the end of setup.sh, the phablet user will have GOPATH=$HOME in the environment, the qml package will be built, and the particle example will be built and run. For stopping it from the command line, run as the phablet user:

$ ubuntu-app-stop gopkg.in.qml.particle-example

for running it again:

$ ubuntu-app-launch gopkg.in.qml.particle-example

These commands depend on the following file, installed by setup.sh:

~/.local/share/applications/gopkg.in.qml.particle-example.desktop

Requirements on Mac OS X

On Mac OS X you'll need QT5. It's easiest to install with Homebrew, a third-party package management system for OS X.

Installation instructions for Homebrew are here:

http://brew.sh/

Then, install the qt5 and pkg-config packages:

$ brew install qt5 pkg-config

Then, force brew to "link" qt5 (this makes it available under /usr/local):

$ brew link --force qt5

And finally, fetch and install go-qml:

$ go get gopkg.in/qml.v1

Requirements on Windows

On Windows you'll need the following:

Then, assuming Qt was installed under C:\Qt5.1.1\, set up the following environment variables in the respective configuration:

CPATH += C:\Qt5.1.1\5.1.1\mingw48_32\include
LIBRARY_PATH += C:\Qt5.1.1\5.1.1\mingw48_32\lib
PATH += C:\Qt5.1.1\5.1.1\mingw48_32\bin

After reopening the shell for the environment changes to take effect, this should work:

go get gopkg.in/qml.v1

Requirements everywhere else

If your operating system does not offer these dependencies readily, you may still have success installing Go >= 1.2 and Qt 5.0.2 directly from the upstreams. Note that you'll likely have to adapt environment variables to reflect the custom installation path for these libraries. See the instructions above for examples.

Comments
  • private/qmetaobject_p.h: No such file or directory

    private/qmetaobject_p.h: No such file or directory

    go get -v -u github.com/niemeyer/qml
    github.com/niemeyer/qml (download)
    github.com/niemeyer/qml
    # github.com/niemeyer/qml
    In file included from src/github.com/niemeyer/qml/cpp/capi.cpp:10:0,
                     from src/github.com/niemeyer/qml/all.cpp:2:
    src/github.com/niemeyer/qml/cpp/govalue.h:7:35: fatal error: private/qmetaobject_p.h: No such file or directory
     #include <private/qmetaobject_p.h>
    

    OS: Archlinux 64 bits QT version: 5.2.1 (I received an update today. It was ok with the previous version.)

  •  Mac OS bug: is only safe to invoke on the main thread

    Mac OS bug: is only safe to invoke on the main thread

    mac os 10.9.3 QT 5.2.1

    github.com/go-qml/qml/examples/customtype

    2014-05-23 01:41:40.054 customtype[44170:1b03] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-1056.13/Misc.subproj/NSUndoManager.m:328 2014-05-23 01:41:40.056 customtype[44170:1b03] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread. 2014-05-23 01:41:40.065 customtype[44170:1b03](0 CoreFoundation 0x00007fff96fb925c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff93a99e75 objc_exception_throw + 43 2 CoreFoundation 0x00007fff96fb9038 +[NSException raise:format:arguments:] + 104 3 Foundation 0x00007fff96b5cd41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189 4 Foundation 0x00007fff96ac728c +[NSUndoManager%28NSPrivate%29 _endTopLevelGroupings] + 156 5 AppKit 0x00007fff957ffa43 -[NSApplication run] + 688 6 libqcocoa.dylib 0x0000000007db95a5 _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 2149 7 QtCore 0x0000000005a3345d _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 397 8 QtCore 0x0000000005a362e7 _ZN16QCoreApplication4execEv + 359 9 customtype 0x0000000004079c61 runtime.asmcgocall + 97)

  • panic running customtype.go on windows

    panic running customtype.go on windows

    When running customtype.go on windows I get following output:

    I just tried running customtype.go on windows and I get an panic...

    Text changed...
    panic: invalid memory address or nil pointer dereference
    fatal error: panic during malloc
    [signal 0xc0000005 code=0x0 addr=0x20 pc=0x41b2aa]
    
    runtime stack:
    runtime.panic(0x4cf6c0, 0x60c338)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/panic.c:233 +0x2b
    runtime: unexpected return pc for runtime.sigpanic called from 0x6fcaef11
    
    goroutine 4 [syscall]:
    runtime.cgocall(0x487e4b, 0x3056d4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:149 +0x10c fp=0x3056c8
    github.com/niemeyer/qml._Cfunc_objectGoAddr(0x25a7660, 0x13120358, 0x4b4240)
            C:/Users/THOMAS~1.PC1/AppData/Local/Temp/go-build936011503/github.com/niemeyer/qml/_obj/_cgo_defun.c:376 +0x33 fp=0x3056d4
    github.com/niemeyer/qml.func┬╖016()
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:384 +0x58 fp=0x3056f4github.com/niemeyer/qml.hookIdleTimer()
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:163 +0x53 fp=0x30570c
    ----- stack segment boundary -----
    runtime.cgocallbackg1()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:296 +0xb4 fp=0x305770
    runtime.cgocallbackg()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:266 +0x7a fp=0x305778
    runtime.cgocallback_gofunc(0x403cb0, 0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/asm_386.s:676 +0x57 fp=0x305788
    runtime.asmcgocall(0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/asm_386.s:584 +0x22 fp=0x30578c
    runtime.cgocall(0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:149 +0x120 fp=0x3057b8
    github.com/niemeyer/qml._Cfunc_applicationExec(0x6139a0)
            C:/Users/THOMAS~1.PC1/AppData/Local/Temp/go-build936011503/github.com/niemeyer/qml/_obj/_cgo_defun.c:61 +0x33 fp=0x3057c4
    github.com/niemeyer/qml.guiLoop()
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:34 +0x54 fp=0x3057ccruntime.goexit()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/proc.c:1394 fp=0x3057d0
    created by github.com/niemeyer/qml.Init
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:58 +0x8c
    
    goroutine 1 [chan receive]:
    github.com/niemeyer/qml.gui(0x13129260)
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:62 +0x94
    github.com/niemeyer/qml.(*Common).Interface(0x13120300, 0x0, 0x26c8c8)
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:387 +0x93
    main.run(0x0, 0x1)
            c:/Workspace/goqml/qml/examples/customtype/customtype.go:47 +0x120
    main.main()
            c:/Workspace/goqml/qml/examples/customtype/customtype.go:10 +0x20
    
    goroutine 3 [syscall]:
    runtime.goexit()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/proc.c:1394
    exit status 2
    
  • Context.SetVar - panic: pre-allocated buffer size was wrong

    Context.SetVar - panic: pre-allocated buffer size was wrong

    I'm unable to pass a struct via Context.SetVar and access one of its fields in the QML. I've tried passing many different structs to SetVars and calling them from the QML in many ways.

    panic: pre-allocated buffer size was wrong

    goroutine 4 [running]: runtime.panic(0x53e340, 0xc21000a300) /usr/local/go/src/pkg/runtime/panic.c:266 +0xb6 github.com/niemeyer/qml.typeInfo(0x55d860, 0xc21001d5d0, 0x55d860) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/datatype.go:304 +0x7fd github.com/niemeyer/qml.wrapGoValue(0xc21001d540, 0x55d860, 0xc21001d5d0, 0x1, 0x0) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:233 +0x40d github.com/niemeyer/qml.packDataValue(0x55d860, 0xc21001d5d0, 0xc21000a2d0, 0xc21001d540, 0x7fe6a0e09c01) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/datatype.go:106 +0x21a github.com/niemeyer/qml.func·013() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:292 +0x84 github.com/niemeyer/qml.hookIdleTimer() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:172 +0x5b github.com/niemeyer/qml._Cfunc_applicationExec(0x8c1380) github.com/niemeyer/qml/_obj/_cgo_defun.c:57 +0x31 github.com/niemeyer/qml.guiLoop() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:41 +0x5b created by github.com/niemeyer/qml.Init /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:44 +0xa0

    goroutine 1 [runnable]: github.com/niemeyer/qml.gui(0xc21001d600) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:68 +0xa3 github.com/niemeyer/qml.(*Context).SetVar(0xc21000a2a0, 0x57fd80, 0x5, 0x55d860, 0xc21001d5d0) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:298 +0x10b main.run(0x7fe6a0e09ed0, 0x2) /home/eb/Dropbox/go/src/taq/taq.go:90 +0x19d main.main() /home/eb/Dropbox/go/src/taq/taq.go:73 +0x31b

    goroutine 3 [syscall]: runtime.goexit() /usr/local/go/src/pkg/runtime/proc.c:1394

    exit status 2

    the go -code is here:

    type Cell struct { num int val string pic string }

    func NewCell(num int) Cell { return Cell{val: "",num:num,pic:"blank.png"} }

    cell01 := NewCell(1) 
    engine.Context().SetVar("cell1", &cell01)
    

    and the qml file:

    Image {
             source: cell1.pic
             fillMode: Image.PreserveAspectFit
         }
    

    Any ideas?

  • Loading QPixmap as images?

    Loading QPixmap as images?

    This is more like a question: Is it possible to load a QPixmap (using loadFromData) from Go side as an image yo be used as an Image in QML? I believe with C++ one needs to use QDeclarativeImageProvider (at least with Qt 4, not sure about Qt 5.1+).

    An example image viewer using this package would be immensely helpful :)

  • Windows Build Problem: ... qopenglversionfunctions.h:785:43: error: expected unqualified-id ...

    Windows Build Problem: ... qopenglversionfunctions.h:785:43: error: expected unqualified-id ...

    Hi,

    building under Linux was no problem. But I'm struggling for a few days to try to build it under windows 7 with mingw.

    Below is the error message I received. I also tried with Qt 5.2.1; same error.

    I don't know what to do now... :( Any hints?

    Thanks for the great work so far! Cheers, Christopher

    >go get gopkg.in/qml.v0
    # gopkg.in/qml.v0
    In file included from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/qopenglcontext.h:63:0,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/QtGui:32,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtOpenGL/QtOpenGLDepends:3,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtOpenGL/QtOpenGL:3,
                     from gopkg.in\qml.v0\cpp/govalue.cpp:3,
                     from gopkg.in\qml.v0\all.cpp:3:
    C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/qopenglversionfunctions.h:785:43: error: expected unqualified-id before ')' token
         void (QOPENGLF_APIENTRYP MemoryBarrier)(GLbitfield barriers);
    
  • SIGSEGV when changing state property on QML object

    SIGSEGV when changing state property on QML object

    i have created qml file with qt creator and it works very well when i run with QtCreator.But it does not run when i use the same qml file with Go. i am getting error like this : SIGSEGV: segmentation violation PC=0xb65dc472 signal arrived during cgo execution Its crashing while i move one rectangle to another rectangle's position. Most of the tutorials are working well even gopher example is working well.
    i attached you an example. its working well. But if i use rect1.x and rect1.y instead of 50 & 160 its crashing. So the problem is here. working case :

    states: State {
            name: "down";
            PropertyChanges { target: rect1; x:50; y: 160}
        }
    crashing :
    states: State {
            name: "down";
            PropertyChanges { target: rect1; x:rect2.x; y: rect2.y}
        }
    
    
    Complete code :
    
    
    import QtQuick 2.0
    Rectangle {
        id: page
        width: 320; height: 480
        color: "lightgray"
        state:"none"
        Rectangle {
            id: rect1
            x: 30
            y: 30
            width:50
            height:50
            MouseArea {
                anchors.fill: parent
                onClicked: page.state = 'down'
            }
        }
        Rectangle {
            id: rect2
            x: 50
            y: 160
            width:50
            height:50
        }
        states: State {
            name: "down";
            PropertyChanges { target: rect1; x:50; y: 160} // if i use rect2.x and rect2.y instead of 50 & 160 its crashing...
        }
        transitions: Transition {
            from: "none"; to: "down";
            NumberAnimation { properties: "x,y"; duration: 2000; easing.type: Easing.InOutQuad }
        }
    }
    
  • OSX 10.9.1  Error: no such file or directory : '/QtCore'

    OSX 10.9.1 Error: no such file or directory : '/QtCore'

    ☁  ~  go version 
    go version go1.2 darwin/386
    ☁  ~  ls /usr/local/Cellar/qt5/HEAD/include/QtCore/ | grep '^5'
    5.2.1
    ☁  ~  echo $PKG_CONFIG_PATH
    /usr/local/opt/qt5/lib/pkgconfig
    
    ☁  ~  CXX=g++-4.8 go get github.com/niemeyer/qml
    # github.com/niemeyer/qml
    clang: error: no such file or directory: '/QtCore'
    

    is there any path not configured ?

  • Crash On Windows using qtx64 5.4.0

    Crash On Windows using qtx64 5.4.0

    http://sourceforge.net/projects/qtx64/files/qt-x64/5.4.0/mingw-4.9/seh/qt-5.4.0-x64-mingw492r0-seh-opengl.exe/download

    I've been using go1.4, qt 5.4.0 to explore this library and it crashes on the example programs.

    Any idea what the problem is?

    C:\Users\fire\go\src\gopkg.in\qml.v1\examples\controls\gallery>gallery.exe
    Exception 0xc0000005 0x1 0x0 0x7fffb6f85ed9
    PC=0x7fffb6f85ed9
    signal arrived during cgo execution
    
    gopkg.in/qml%2ev1._Cfunc_idleTimerInit(0x693ce4)
            C:/Users/fire/go/src/gopkg.in/qml.v1/:191 +0x4c
    gopkg.in/qml%2ev1.Run(0x5ab078, 0x0, 0x0)
            C:/Users/fire/go/src/gopkg.in/qml.v1/bridge.go:56 +0x141
    main.main()
            C:/Users/fire/go/src/gopkg.in/qml.v1/examples/controls/gallery/gallery.g
    o:10 +0x39
    
    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
            c:/go/src/runtime/asm_amd64.s:2232 +0x1
    rax     0x0
    rbx     0x23fe48
    rcx     0xece672284a970000
    rdx     0x0
    rdi     0xffffffffffffffff
    rsi     0x689060
    rbp     0x689420
    rsp     0x23fdf0
    r8      0x23f3e8
    r9      0x0
    r10     0x0
    r11     0x23f830
    r12     0xb
    r13     0x0
    r14     0x23fe40
    r15     0x4cf8b0
    rip     0x7fffb6f85ed9
    rflags  0x7fff00010286
    cs      0x33
    fs      0x53
    gs      0x2b
    
  • Add support for resource bundles

    Add support for resource bundles

    Some references:

    • http://qt-project.org/doc/qt-5/resources.html
    • http://qt-project.org/doc/qt-5/qresource.html
    • http://qt-project.org/wiki/QtResources

    The qml package may leverage the public API behind this logic to load the resource from in-memory data:

    Using Resources in a Library

    If you have resources in a library, you need to force initialization of your resources by calling Q_INIT_RESOURCE() with the base name of the .qrc file. For example: (...) This ensures that the resources are linked into the final application binary in the case of static linking. You should put the initialization code close to where the resources are used in your library, so that clients of your library will only link in the resources if they use the feature of the library that depends on them.

    That's the definition of these macros, from qglobal.h:

    #define Q_INIT_RESOURCE(name) \
        do { extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) ();       \
            QT_MANGLE_NAMESPACE(qInitResources_ ## name) (); } while (0)
    #define Q_CLEANUP_RESOURCE(name) \
        do { extern int QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) ();    \
            QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) (); } while (0)
    

    These functions are automatically built by the rcc tool. At their bottom, logic similar to the following is used to actually do the registration at runtime:

    qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
    

    This function is defined in qtbase/src/corelib/io/qresource.cpp and is exported, but is not declared in any header. It's safe to do a local declaration and use it, though, because public code does the same and depends on it to work.

  • signal: segmentation fault before 'main.main'

    signal: segmentation fault before 'main.main'

    This was on Go 1.2 Linux 64 debian sid. Both packages work in isolation. They do not like each other, not sure why.

    // test2.go

    package main

    import ( "azul3d.org/v0/native/freetype" "gopkg.in/v0/qml" )

    var a freetype.Font

    func main() { qml.Init(nil) }

  • Installation on Ubuntu 19.10

    Installation on Ubuntu 19.10

    Two problems with the installation instructions:

    1. The Ubuntu SDK PPA structure has changed or moved, most packages are now available as part of the current unstable release, except for qtquick2, which appears to be now provided by the package qml-module-qtquick2.

    The following should do on 19.10 without having to install an extra PPA:

    $ sudo apt-get install qtdeclarative5-dev qtbase5-private-dev qtdeclarative5-private-dev libqt5opengl5-de qml-module-qtquick2

    1. Despite this making installation simpler in appearance, other problems appear to have been introduced when attempting to go get the Go package. Screenshot follows:

    Screenshot at 2020-02-02 02-40-28

  •  on Mac QT 5.13.0 + Go 1.12.7 installing error when did 'go get gopkg.in/qml.v1'

    on Mac QT 5.13.0 + Go 1.12.7 installing error when did 'go get gopkg.in/qml.v1'

    $ go get gopkg.in/qml.v1

    gopkg.in/qml.v1

    In file included from all.cpp:2: In file included from ../../go/src/gopkg.in/qml.v1/cpp/capi.cpp:10: In file included from ../../go/src/gopkg.in/qml.v1/cpp/govalue.h:7: In file included from ../../go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:1: ../../go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:39:2: error: Unupported Qt minor version. Please report. In file included from all.cpp:2: In file included from ../../go/src/gopkg.in/qml.v1/cpp/capi.cpp:10: In file included from ../../go/src/gopkg.in/qml.v1/cpp/govalue.h:7: ../../go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:2:10: fatal error: 'QtCore/5.QT_MINOR.0/QtCore/private/qmetaobject_p.h' file not found ../../go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:68:37: note: expanded from macro 'QT_PRIVATE_HEADER'

  • build go-qml failure

    build go-qml failure

    Hello,

    i have follow the README, but when i try "go get gopkg.in/qml.v1", it show error below:

    # gopkg.in/qml.v1
    In file included from ../gopkg.in/qml.v1/cpp/private/qobject_p.h:2:0,
                     from /usr/include/x86_64-linux-gnu/qt5/QtCore/5.9.5/QtCore/private/qmetaobject_p.h:58,
                     from ../gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:2,
                     from cpp/govalue.h:7,
                     from cpp/capi.cpp:10,
                     from all.cpp:2:
    /usr/include/x86_64-linux-gnu/qt5/QtCore/5.9.5/QtCore/private/qobject_p.h:55:10: fatal error: QtCore/private/qglobal_p.h: No such file or directory
     #include <QtCore/private/qglobal_p.h>
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    
    

    My OS: ubuntu 18.04 LTS.

    do you any ideas to fix it? Thank you for reading

  • Broken under Go 1.12 (relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal))

    Broken under Go 1.12 (relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal))

    Compiling using Go 1.12 gives the following error:

    cdata.Ref: relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal)
    cdata.Ref: relocation target runtime.releasem not defined for ABI0 (but is defined for ABIInternal)
    
  • Qt 5.11 Support

    Qt 5.11 Support

    Any plans on supporting 5.11? Or is this project dead? :skull:

    $ go get -u -v gopkg.in/qml.v1
    Fetching https://gopkg.in/qml.v1?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1?go-get=1 (status code 200)
    get "gopkg.in/qml.v1": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1?go-get=1
    gopkg.in/qml.v1 (download)
    Fetching https://gopkg.in/qml.v1/cdata?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1/cdata?go-get=1 (status code 200)
    get "gopkg.in/qml.v1/cdata": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1/cdata?go-get=1
    get "gopkg.in/qml.v1/cdata": verifying non-authoritative meta tag
    Fetching https://gopkg.in/qml.v1?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1?go-get=1 (status code 200)
    Fetching https://gopkg.in/qml.v1/gl/glbase?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1/gl/glbase?go-get=1 (status code 200)
    get "gopkg.in/qml.v1/gl/glbase": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1/gl/glbase?go-get=1
    get "gopkg.in/qml.v1/gl/glbase": verifying non-authoritative meta tag
    gopkg.in/qml.v1
    # gopkg.in/qml.v1
    In file included from go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:1,
                     from cpp/govalue.h:7,
                     from cpp/capi.cpp:10,
                     from all.cpp:2:
    go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:39:2: error: #error Unupported Qt minor version. Please report.
     #error Unupported Qt minor version. Please report.
      ^~~~~
    go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:68:37: fatal error: QtCore/5.QT_MINOR.1/QtCore/private/qmetaobject_p.h: No such file or directory
     #define QT_PRIVATE_HEADER(dir,file) <dir/QT_MAJOR.QT_MINOR.QT_MICRO/dir/private/file>
                                         ^
    compilation terminated.
    
    
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Dec 10, 2022
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Introduction Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on var

Jan 2, 2023
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Dec 10, 2022
A package to build progressive web apps with Go programming language and WebAssembly.
A package to build progressive web apps with Go programming language and WebAssembly.

go-app is a package to build progressive web apps (PWA) with Go programming language and WebAssembly. It uses a declarative syntax that allows creatin

Dec 28, 2022
A Windows GUI toolkit for the Go Programming Language
A Windows GUI toolkit for the Go Programming Language

About Walk Walk is a "Windows Application Library Kit" for the Go Programming Language. Its primarily useful for Desktop GUI development, but there is

Dec 30, 2022
Simple QML binding for Go

Qamel Qamel is a simple QML binding for Go, heavily inspired by therecipe/qt. This package only binds Qt's classes that used for creating a simple QML

Jan 3, 2023
Database Abstraction Layer (dbal) for Go. Support SQL builder and get result easily (now only support mysql)

godbal Database Abstraction Layer (dbal) for go (now only support mysql) Motivation I wanted a DBAL that No ORM、No Reflect、Concurrency Save, support S

Nov 17, 2022
Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.

stress stress is an HTTP stress testing tool. Through this tool, you can do a stress test on the HTTP service and get detailed test results. It is ins

Aug 23, 2022
🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows.
🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows.

?? Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染

Dec 30, 2022
Dynamic object-oriented programming support for the Go language

Goop Description The Goop (Go Object-Oriented Programming) package provides support for dynamic object-oriented programming constructs in Go, much lik

Oct 13, 2022
YAML support for the Go language.

YAML support for the Go language Introduction The yaml package enables Go programs to comfortably encode and decode YAML values. It was developed with

Jan 8, 2023
YAML support for the Go language
YAML support for the Go language

YAML support for the Go language Why a new library? As of this writing, there already exists a de facto standard library for YAML processing for Go: h

Dec 31, 2022
YAML support for the Go language
YAML support for the Go language

YAML support for the Go language

Dec 31, 2022
A db proxy for distributed transaction, read write splitting and sharding! Support any language! It can be deployed as a sidecar in a pod.
A db proxy for distributed transaction, read write splitting and sharding! Support any language! It can be deployed as a sidecar in a pod.

DBPack DBPack means a database cluster tool pack. It can be deployed as a sidecar in a pod, it shields complex basic logic, so that business developme

Dec 29, 2022
Generate code for any language, with any language.

gocog - generate code for any language, with any language gocog v1.0 build 20130206 Binaries for popular OSes are available on the Downloads page of t

Aug 5, 2022
Floppa programming language inspired by the brainf*ck programming language. Created just for fun and you can convert your brainf*ck code to floppa code.

Floppa Programming Language Created just for fun. But if you want to contribute, why not? Floppa p.l. inspired by the brainf*ck programming language.

Oct 20, 2022
Please is a cross-language high-performance extensible build system for reproducible multi-language builds.

Please is a cross-language build system with an emphasis on high performance, extensibility and reproducibility. It supports a number of popular languages and can automate nearly any aspect of your build process.

Dec 30, 2022
Q Language : A script language for Go
Q Language : A script language for Go

Q Language - A script language for Go 语言特色 与 Go 语言有最好的互操作性。可不进行任何包装即可直接使用 Go 语言的函数、类及其成员变量和方法。 有赖于 Go 语言的互操作性,这门语言直接拥有了一套非常完整且您十分熟悉的标准库,无额外学习成本。 与 Go

Sep 5, 2022