qt5 bindings for go

#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.

Some other Qt-related, active go projects:

##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()
    })
}
Owner
Comments
  • go install OSX El Capitain

    go install OSX El Capitain

    Hello,

    im trying to get this repo running on OSX 10.10.x El Capitain.. Looks good until i run "go install" in the qt5 folder.

    It says: github.com/salviati/go-qt5/qt5

    github.com/salviati/go-qt5/qt5

    ld: library not found for -lgoqt5drv clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Any ideas?

  • Add Support for reading in UI Designer files

    Add Support for reading in UI Designer files

    • Qt Designer .ui files may now be read into a widget with
    // we need to load the file with the QFile binding
    file := qt5.NewFileWithFilename(designFile)
    file.Open(qt5.OpenModeReadOnly)
    
    // Create the ui loader and load the layout into a widget
    uiLoader := qt5.NewUILoader()
    widget := uiLoader.Load(file)
    

    Its not incredibly useful yet because there really isn't a way to get the widgets that you set up. I tried to use qt5.FindObjectByKey() but that doesn't seem to work.

    • Add support for string slice arguments and function types and add bindings for functions that used them and were skipped before
    • Add underlying multimedia classes for future development
  • Bindings for classes that do not inherit QObject

    Bindings for classes that do not inherit QObject

    Some of the Qt classes, like QStandardItem do not inherit QObject. I was having trouble modifying makelib.lua to make this work and was hoping you could point me in the right direction. I am trying to work toward support for QListView and QTableView with this.

  • mac 10.10 amd64 qt5.3 make error

    mac 10.10 amd64 qt5.3 make error

    ./cdrv.h:334:27: error: conversion from 'goInt' (aka 'long long') to 'QFlag' is ambiguous return (Qt::Alignment)((goInt)param); ^~~~~~~~~~~~~~~~ /Users/nzlov/Program/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qflags.h:60:29: note: candidate constructor Q_DECL_CONSTEXPR inline QFlag(int ai) : i(ai) {} ^ /Users/nzlov/Program/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qflags.h:61:29: note: candidate constructor Q_DECL_CONSTEXPR inline QFlag(uint ai) : i(int(ai)) {} ^ /Users/nzlov/Program/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qflags.h:62:29: note: candidate constructor Q_DECL_CONSTEXPR inline QFlag(short ai) : i(int(ai)) {} ^ /Users/nzlov/Program/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qflags.h:63:29: note: candidate constructor Q_DECL_CONSTEXPR inline QFlag(ushort ai) : i(int(uint(ai))) {} ^ /Users/nzlov/Program/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qflags.h:108:42: note: passing argument to parameter 'f' here Q_DECL_CONSTEXPR inline QFlags(QFlag f) : i(f) {} ^ In file included from cdrv.cpp:15: ./cdrv.h:684:64: warning: unused parameter 'param' [-Wunused-parameter] inline QtSignal* drvNewSignal(QObject parent, void *fn, void *param = 0) ^ ./cdrv.h:692:61: warning: unused parameter 'a2' [-Wunused-parameter] inline void drvNewEvent(int type, void *a0, void *a1, void *a2 = 0) ^ cdrv.cpp:1002:50: warning: unused parameter 'a2' [-Wunused-parameter] int drv_app(int drvid, void *a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1002:60: warning: unused parameter 'a3' [-Wunused-parameter] int drv_app(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1002:70: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1002:80: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1002:90: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1059:62: warning: unused parameter 'a3' [-Wunused-parameter] int drv_timer(int drvid, void a0, void a1, void* a2, void* a3, void* a4, v... ^ cdrv.cpp:1059:72: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1059:82: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1059:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1117:71: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1117:81: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1117:91: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1268:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1361:51: warning: unused parameter 'a2' [-Wunused-parameter] int drv_icon(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1361:61: warning: unused parameter 'a3' [-Wunused-parameter] int drv_icon(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1361:71: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1361:81: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1361:91: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1387:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1433:63: warning: unused parameter 'a3' [-Wunused-parameter] int drv_widget(int drvid, void a0, void a1, void* a2, void* a3, void* a4, ... ^ cdrv.cpp:1433:73: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1433:83: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1433:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1700:63: warning: unused parameter 'a3' [-Wunused-parameter] int drv_action(int drvid, void a0, void a1, void* a2, void* a3, void* a4, ... ^ cdrv.cpp:1700:73: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1700:83: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1700:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1790:68: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1790:78: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1790:88: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1790:98: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1848:61: warning: unused parameter 'a3' [-Wunused-parameter] int drv_menu(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1848:71: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1848:81: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1848:91: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1938:64: warning: unused parameter 'a3' [-Wunused-parameter] int drv_menubar(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1938:74: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1938:84: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1938:94: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1996:64: warning: unused parameter 'a3' [-Wunused-parameter] int drv_toolbar(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:1996:74: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:1996:84: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:1996:94: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2066:76: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2066:86: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2066:96: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2120:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2120:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2120:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2120:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2166:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2166:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2228:86: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2228:96: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2314:84: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2314:94: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2400:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2400:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2400:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2400:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2454:76: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2454:86: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2454:96: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2516:18: warning: unused variable 'self' [-Wunused-variable] QHBoxLayout self = (QHBoxLayout)drvGetNative(a0); ^ cdrv.cpp:2514:47: warning: unused parameter 'a1' [-Wunused-parameter] int drv_hboxlayout(int drvid, void a0, void a1, void* a2, void* a3, vo... ^ cdrv.cpp:2514:57: warning: unused parameter 'a2' [-Wunused-parameter] int drv_hboxlayout(int drvid, void a0, void a1, void* a2, void* a3, vo... ^ cdrv.cpp:2514:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2514:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2514:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2514:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2530:18: warning: unused variable 'self' [-Wunused-variable] QVBoxLayout self = (QVBoxLayout)drvGetNative(a0); ^ cdrv.cpp:2528:47: warning: unused parameter 'a1' [-Wunused-parameter] int drv_vboxlayout(int drvid, void a0, void a1, void* a2, void* a3, vo... ^ cdrv.cpp:2528:57: warning: unused parameter 'a2' [-Wunused-parameter] int drv_vboxlayout(int drvid, void a0, void a1, void* a2, void* a3, vo... ^ cdrv.cpp:2528:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2528:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2528:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2528:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2542:70: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2542:80: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2542:90: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2542:100: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2588:57: warning: unused parameter 'a2' [-Wunused-parameter] int drv_basebutton(int drvid, void a0, void a1, void* a2, void* a3, vo... ^ cdrv.cpp:2588:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2588:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2588:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2588:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2638:63: warning: unused parameter 'a3' [-Wunused-parameter] int drv_button(int drvid, void a0, void a1, void* a2, void* a3, void* a4, ... ^ cdrv.cpp:2638:73: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2638:83: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2638:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2684:65: warning: unused parameter 'a3' [-Wunused-parameter] int drv_checkbox(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:2684:75: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2684:85: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2684:95: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2722:62: warning: unused parameter 'a3' [-Wunused-parameter] int drv_radio(int drvid, void a0, void a1, void* a2, void* a3, void* a4, v... ^ cdrv.cpp:2722:72: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2722:82: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2722:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2744:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2744:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2744:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2744:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2798:52: warning: unused parameter 'a2' [-Wunused-parameter] int drv_frame(int drvid, void a0, void a1, void* a2, void* a3, void* a... ^ cdrv.cpp:2798:62: warning: unused parameter 'a3' [-Wunused-parameter] int drv_frame(int drvid, void a0, void a1, void* a2, void* a3, void* a4, v... ^ cdrv.cpp:2798:72: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2798:82: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2798:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2828:62: warning: unused parameter 'a3' [-Wunused-parameter] int drv_label(int drvid, void a0, void a1, void* a2, void* a3, void* a4, v... ^ cdrv.cpp:2828:72: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2828:82: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2828:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2928:55: warning: unused parameter 'a2' [-Wunused-parameter] int drv_groupbox(int drvid, void a0, void a1, void* a2, void* a3, void... ^ cdrv.cpp:2928:65: warning: unused parameter 'a3' [-Wunused-parameter] int drv_groupbox(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:2928:75: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2928:85: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2928:95: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2954:63: warning: unused parameter 'a3' [-Wunused-parameter] int drv_dialog(int drvid, void a0, void a1, void* a2, void* a3, void* a4, ... ^ cdrv.cpp:2954:73: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:2954:83: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:2954:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3012:65: warning: unused parameter 'a3' [-Wunused-parameter] int drv_combobox(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3012:75: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3012:85: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3012:95: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3094:65: warning: unused parameter 'a3' [-Wunused-parameter] int drv_lineedit(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3094:75: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3094:85: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3094:95: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3241:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3241:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3241:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3241:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3348:53: warning: unused parameter 'a2' [-Wunused-parameter] int drv_slider(int drvid, void a0, void a1, void* a2, void* a3, void* ... ^ cdrv.cpp:3348:63: warning: unused parameter 'a3' [-Wunused-parameter] int drv_slider(int drvid, void a0, void a1, void* a2, void* a3, void* a4, ... ^ cdrv.cpp:3348:73: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3348:83: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3348:93: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3380:17: warning: unused variable 'self' [-Wunused-variable] QScrollBar self = (QScrollBar)drvGetNative(a0); ^ cdrv.cpp:3378:46: warning: unused parameter 'a1' [-Wunused-parameter] int drv_scrollbar(int drvid, void a0, void a1, void* a2, void* a3, voi... ^ cdrv.cpp:3378:56: warning: unused parameter 'a2' [-Wunused-parameter] int drv_scrollbar(int drvid, void a0, void a1, void* a2, void* a3, voi... ^ cdrv.cpp:3378:66: warning: unused parameter 'a3' [-Wunused-parameter] int drv_scrollbar(int drvid, void a0, void a1, void* a2, void* a3, void* a... ^ cdrv.cpp:3378:76: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3378:86: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3378:96: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3392:51: warning: unused parameter 'a2' [-Wunused-parameter] int drv_dial(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3392:61: warning: unused parameter 'a3' [-Wunused-parameter] int drv_dial(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3392:71: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3392:81: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3392:91: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3434:52: warning: unused parameter 'a2' [-Wunused-parameter] int drv_brush(int drvid, void a0, void a1, void* a2, void* a3, void* a... ^ cdrv.cpp:3434:62: warning: unused parameter 'a3' [-Wunused-parameter] int drv_brush(int drvid, void a0, void a1, void* a2, void* a3, void* a4, v... ^ cdrv.cpp:3434:72: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3434:82: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3434:92: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3468:50: warning: unused parameter 'a2' [-Wunused-parameter] int drv_pen(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3468:60: warning: unused parameter 'a3' [-Wunused-parameter] int drv_pen(int drvid, void a0, void a1, void* a2, void* a3, void* a4... ^ cdrv.cpp:3468:70: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3468:80: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3468:90: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3510:84: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3510:94: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3674:61: warning: unused parameter 'a2' [-Wunused-parameter] int drv_listwidgetitem(int drvid, void a0, void a1, void* a2, void* a3... ^ cdrv.cpp:3674:71: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3674:81: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3674:91: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3674:101: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3776:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3776:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3776:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3776:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3870:67: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3870:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3870:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3870:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3928:95: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3998:77: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:3998:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:3998:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:4044:61: warning: unused parameter 'a2' [-Wunused-parameter] int drv_basescrollarea(int drvid, void a0, void a1, void* a2, void* a3... ^ cdrv.cpp:4044:71: warning: unused parameter 'a3' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:4044:81: warning: unused parameter 'a4' [-Wunused-parameter] ...drvid, void a0, void a1, void* a2, void* a3, void* a4, void* a5, void... ^ cdrv.cpp:4044:91: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:4044:101: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:4070:87: warning: unused parameter 'a5' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ cdrv.cpp:4070:97: warning: unused parameter 'a6' [-Wunused-parameter] ...void a0, void a1, void* a2, void* a3, void* a4, void* a5, void* a6) ^ 187 warnings and 1 error generated. make: *** [cdrv.o] Error 1

  • How to run qt5.Main in no-main thread

    How to run qt5.Main in no-main thread

    I run QT.main in non-main thread, sometimes I get panic, but sometimes get warning but works.

    first is panic, second is warning.

    SIGSEGV: segmentation violation
    PC=0x7f34fba7f38c
    signal arrived during cgo execution
    
    runtime.cgocall(0x401680, 0x7f35151b4e10)
        /usr/lib/go/src/pkg/runtime/cgocall.c:149 +0x11b fp=0x7f35151b4df8
    github.com/salviati/go-qt5/qt5._Cfunc_drv(0x100000001, 0x0, 0xdd9080, 0xc2100009b0, 0x0, ...)
        github.com/salviati/go-qt5/qt5/_obj/_cgo_defun.c:51 +0x36 fp=0x7f35151b4e10
    github.com/salviati/go-qt5/qt5._drv(0x1, 0x1, 0xdd9080, 0xc2100009b0, 0x0, ...)
        /home/mike/go/src/github.com/salviati/go-qt5/qt5/cdrv.go:92 +0x93 fp=0x7f35151b4e68
    github.com/salviati/go-qt5/qt5.(*app).AppMain(0xdd9080, 0x0)
        /home/mike/go/src/github.com/salviati/go-qt5/qt5/uiobjs.go:1381 +0xa7 fp=0x7f35151b4ee0
    github.com/salviati/go-qt5/qt5.Main(0xc2100be060, 0xc2100be060)
        /home/mike/go/src/github.com/salviati/go-qt5/qt5/ui.go:22 +0x37 fp=0x7f35151b4ef8
    github.com/ggaaooppeenngg/dic.GUITranslate(0xc2100009a8, 0x3, 0xc210039300)
        /home/mike/go/src/github.com/ggaaooppeenngg/dic/dic.go:149 +0x10b fp=0x7f35151b4f88
    runtime.goexit()
        /usr/lib/go/src/pkg/runtime/proc.c:1394 fp=0x7f35151b4f90
    created by github.com/ggaaooppeenngg/dic.Listener
        /home/mike/go/src/github.com/ggaaooppeenngg/dic/listen.go:44 +0x485
    
    rax     0x24a9900
    rbx     0x250c5c0
    rcx     0x24a16c0
    rdx     0x18
    rdi     0x250c5c0
    rsi     0x250e620
    rbp     0x250e620
    rsp     0x7fffb9755020
    r8      0x250e620
    r9      0x0
    r10     0x0
    r11     0x7
    r12     0x262ac60
    r13     0x24459b8
    r14     0x12232d9b
    r15     0x0
    rip     0x7f34fba7f38c
    rflags  0x10206
    cs      0x33
    fs      0x0
    gs      0x0
    
    

    or sometimes

    WARNING: QApplication was not created in the main() thread.
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    (d:7454): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
    
    

    My Code is like:

      for  somecoditon {
          go run( done ) 
        <- done
     }
     func run(done){
        qt.Main(
        go uimain(exit)
        qt.Run()
        exit<-true
        )
        done<-true
      }
      func uimain(exit){
        //somecode to make ui   
        exit<true
        }
    

    I think the panic occurs when it runs to qt.Main again after I run qt.Main first. But I am sure qt.Main was called after qt.Main exit.

  • set custom location for Qt5

    set custom location for Qt5

    Perhaps people install several Qt in Linux box, such as Qt4 && Qt5, so it is better to set custom location for Qt5

    https://github.com/xiangzhai/go-qt5/commit/cdb3d1666107d231ea07fe23312a0b54b3ef7feb

  • menu disappears after losing focus

    menu disappears after losing focus

    Hey,

    http://pastebin.com/KqLWDLTp here is the basic code. The problem is that after i right click to the systray icon and click away (losing focus), i got this: remove item &{Menu{0x18376380}}. And after this, whenever i right click on the systray the menu doesn't bring up since it's already disposed of. https://github.com/salviati/go-qt5/issues/3 He had almost or the same problem.

    @Jackneill

  • How-to for adding new functions

    How-to for adding new functions

    Hi, I want to add some more Qt classes, namely for working with QML, but I have a hard time to understand all the "drv" magic. Can you explain it briefly, and explain some of the tags in the .lua files, for example:

    • Why some methods in "funcs" section are prefixed with +/-/*/@?
    • Why QAbstractButton, becomes baseButton. Couldn't it became abstractButton?
    • What is the purpose of "unmap = true" in some of the .lua file?
    • What class of functions goes to goqtdrv5/cdrv.h ?
    • Why "base=xxxxx" is needed ?

    Commentig one of the complex files will be best, for example widget.lua. Thank you.

  • Various fixes an cleanups.

    Various fixes an cleanups.

  • Fixed Paths in the Readme

    Fixed Paths in the Readme

    ( $GOPATH doesn't work properly when it is defined as a list. http://golang.org/doc/install says one should set $GOROOT, so this will always be just one directory and safe to use )

  • More Robust Button bindings and Go-uic binary`

    More Robust Button bindings and Go-uic binary`

    • Improve the bindings for basebutton and its derivatives checkbox and button
    • Add a new package called go-uic in qt5 that compiles .uic qt layout files to ago file that is consistent with the built in uic program output. It compiles a go file that is in the package main and works pretty much the same way the c++ one does. It creates the qt widgets and places them into a class specified by the user.
    • TODO: Still to do is to improve robustness for edge cases and more complex layouts. Also add more options such as specifying the generated package name for library cases.
  • qt 5.8.0 make error

    qt 5.8.0 make error

    In file included from qtevent.cpp:16:
    ./cdrv.h:843:64: warning: unused parameter 'param' [-Wunused-parameter]
    inline QtSignal* drvNewSignal(QObject *parent, void *fn, void *param = 0)
                                                                   ^
    ./cdrv.h:851:61: warning: unused parameter 'a2' [-Wunused-parameter]
    inline void drvNewEvent(int type, void *a0, void *a1, void *a2 = 0)
                                                                ^
    qtevent.cpp:217:38: error: non-constant-expression cannot be narrowed from type 'Int' (aka 'unsigned int') to 'int' in initializer list [-Wc++11-narrowing]
                wheel_event ev = {accept,e->modifiers(),e->orientation(),e->buttons(),gpt.x(),gpt.y(),pt.x(),pt.y(),e->delta()};
                                         ^~~~~~~~~~~~~~
    qtevent.cpp:217:38: note: insert an explicit cast to silence this issue
                wheel_event ev = {accept,e->modifiers(),e->orientation(),e->buttons(),gpt.x(),gpt.y(),pt.x(),pt.y(),e->delta()};
                                         ^~~~~~~~~~~~~~
                                         static_cast<int>( )
    qtevent.cpp:217:70: error: non-constant-expression cannot be narrowed from type 'Int' (aka 'unsigned int') to 'int' in initializer list [-Wc++11-narrowing]
                wheel_event ev = {accept,e->modifiers(),e->orientation(),e->buttons(),gpt.x(),gpt.y(),pt.x(),pt.y(),e->delta()};
                                                                         ^~~~~~~~~~~~
    qtevent.cpp:217:70: note: insert an explicit cast to silence this issue
                wheel_event ev = {accept,e->modifiers(),e->orientation(),e->buttons(),gpt.x(),gpt.y(),pt.x(),pt.y(),e->delta()};
                                                                         ^~~~~~~~~~~~
                                                                         static_cast<int>( )
    2 warnings and 2 errors generated.
    make: *** [qtevent.o] Error 1
    
  • cgo argument has Go pointer to Go pointer

    cgo argument has Go pointer to Go pointer

    Excuse me if I can ask question here? I use Qt5.7, go 1.7.1, have problem below. Is it normal error or I make wrong way?

    0.1.1 panic: runtime error: cgo argument has Go pointer to Go pointer

    goroutine 1 [running]: panic(0x4e74e0, 0xc42000c310) /opt/data/data/clearsoft/go/src/runtime/panic.go:500 +0x1a1 github.com/salviati/go-qt5/qt5._cgoCheckPointer0(0x7af040, 0x0, 0x0, 0x0, 0x7fbdb20d6000) github.com/salviati/go-qt5/qt5/_obj/_cgo_gotypes.go:40 +0x59 github.com/salviati/go-qt5/qt5._drv(0x1, 0x1, 0x7af040, 0xc42000c300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /opt/data/data/proj/jkgo/src/github.com/salviati/go-qt5/qt5/cdrv.go:93 +0x5b github.com/salviati/go-qt5/qt5.(*app).AppMain(0x7af040, 0x0) /opt/data/data/proj/jkgo/src/github.com/salviati/go-qt5/qt5/uiobjs.go:1990 +0xb4 github.com/salviati/go-qt5/qt5.Main(0x520690, 0x1) /opt/data/data/proj/jkgo/src/github.com/salviati/go-qt5/qt5/ui.go:22 +0x43 main.main() /opt/data/data/proj/jkgo/src/github.com/salviati/go-qt5/examples/minimal.go:17 +0xaf exit status 2

  • Event handling related memory leak

    Event handling related memory leak

    If you go run minimal.go and keep resizing the window for a while, you'll see that the memory usage goes up.

    (from http://github.com/visualfc/go-ui/issues/10)

  • in window error

    in window error

    D:\GoPath\src\github.com\salviati\go-qt5\examples>go run minimal.go 0.1.1 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc exit status 3

  • menubar disappears and panics on app close in windows

    menubar disappears and panics on app close in windows

    I'm not sure if you have windows, but if you open up a menu (like in examples/widgets.go) and then you close that menu by making it lose focus, the menubar completely disappears and I see a remove item &{Menu{0x12c342e0}} in console. When you close the app, it panics:

    panic: runtime error: call of nil func value
    [signal 0xc0000005 code=0x0 addr=0x0 pc=0x0]
    
    goroutine 1 [syscall]:
    github.com/salviati/go-qt5/qt5._Cfunc_drv(0x8, 0x3)
    C:/Users/outroot/AppData/Local/Temp/go-build940075959/github.com/salviati/go-qt5/qt5/_obj/_cgo_defun.c:42 +0x31
    
Basic Go bindings for FLTK

Go FLTK This is a simple go wrapper for FLTK2, which I did to support my Go version of Ober (based on Acme), Gober. It's very small and should be fair

Mar 12, 2022
Tcl/Tk Go bindings

Tcl/Tk Go bindings. VERSION NOTICE Recently Tcl/Tk 8.6 were released. I use them as a default, if you still have Tcl/Tk 8.5 use `go get -tags tcl85

Nov 21, 2022
Go bindings for GTK3

gotk3 The gotk3 project provides Go bindings for GTK 3 and dependent projects. Each component is given its own subdirectory, which is used as the impo

Jan 6, 2023
Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development
Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development

Go bindings for Sciter Check this page for other language bindings (Delphi / D / Go / .NET / Python / Rust). Attention The ownership of project is tra

Dec 23, 2022
:traffic_light: Go bindings for libappindicator3 C library

go-appindicator Go bindings for libappindicator3 C library. Libappindicator is a library to allow applications to export a menu into the Unity Menu ba

Jun 19, 2022
Go bindings for GLFW 3

GLFW 3.3 for Go Installation GLFW C library source is included and built automatically as part of the Go package. But you need to make sure you have d

Dec 27, 2022
gobbi is a set of generated Go bindings for gtk et al.

gobbi gobject bindings gobbi is a set of generated Go bindings for gobject based libraries. There are bindings, with varying degrees of completeness,

May 6, 2022
This project provides Go bindings for nuklear.h — a small ANSI C GUI library.
This project provides Go bindings for nuklear.h — a small ANSI C GUI library.

Nuklear Package nk provides Go bindings for nuklear.h — a small ANSI C gui library. See github.com/vurtun/nuklear. All the binding code has automatica

Jan 1, 2023
A GTK4 bindings generator for Go.

gotk4 A GTK4 bindings generator for Go. Progress tracker: https://github.com/diamondburned/gotk4/issues/2 All generated packages are in pkg/. The gene

Jan 6, 2023
Golang bindings for XCGUI, Windows GUI library, DirectUI design idea.
Golang bindings for XCGUI, Windows GUI library, DirectUI design idea.

XCGUI 项目文档 帮助文档 程序示例 介绍 English | 简体中文 DirectUI设计思想: 在窗口内没有子窗口,界面元素都是逻辑上的区域(无HWND句柄,安全,灵活), 所有UI元素都是自主开发(不受系统限制), 更加灵活的实现各种程序界面,满足不同用户的需求.

Dec 22, 2022
Go bindings for divideon/xvc

go-xvc [WIP] Go bindings for divideon/xvc Requirements requires xvc install on your system $ git clone https://github.com/divideon/xvc.git $ cd xvc $

Feb 7, 2022
百度网盘不限速客户端, golang + qt5, 跨平台图形界面
百度网盘不限速客户端, golang + qt5, 跨平台图形界面

pan-light _ _ _ _ | (_) | | | | _ __ __ _ _ __ | |_ __ _| |__ | |_ | '_ \ / _` |

Jan 1, 2023
libsox bindings for go

gosox "SoX − Sound eXchange, the Swiss Army knife of audio manipulation" Go bindings for the libsox sound library For more information and documentati

Nov 22, 2022
Go bindings for the PortAudio audio I/O library

portaudio This package provides an interface to the PortAudio audio I/O library. See the package documentation for details. To build this package you

Jan 1, 2023
Go bindings for libportmidi

portmidi Want to output to an MIDI device or listen your MIDI device as an input? This package contains Go bindings for PortMidi. libportmidi (v. 217)

Dec 25, 2022
Golang bindings for the Telegram Bot API

Golang bindings for the Telegram Bot API All methods are fairly self explanatory, and reading the godoc page should explain everything. If something i

Jan 6, 2023
OpenSSL bindings for Go

OpenSSL bindings for Go Please see http://godoc.org/github.com/spacemonkeygo/openssl for more info License Copyright (C) 2017. See AUTHORS. Licensed u

Dec 29, 2022
Golang bindings for libxlsxwriter for writing XLSX files
Golang bindings for libxlsxwriter for writing XLSX files

goxlsxwriter provides Go bindings for the libxlsxwriter C library. Install goxlsxwriter requires the libxslxwriter library to be installe

Nov 18, 2022
Go bindings for ForestDB

goforestdb Go bindings for ForestDB Building Obtain and build forestdb: https://github.com/couchbaselabs/forestdb (run make install to install the lib

Sep 26, 2022
Go bindings for GLib type system.

Go bindings for GLib type system. This package is designed for building bindings to C libraries based on GLib type system (like GTK, GStreamer, and ot

Aug 13, 2019