All Projects → kitech → Qt.go

kitech / Qt.go

Licence: lgpl-3.0
Qt binding for Go (Golang) aims get Go's compile speed again.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Qt.go

Nitroshare Desktop
Network file transfer application for Windows, OS X, & Linux
Stars: ✭ 1,150 (+136.14%)
Mutual labels:  cross-platform, gui, qt, qt5
Qview
Practical and minimal image viewer
Stars: ✭ 460 (-5.54%)
Mutual labels:  cross-platform, qt, qt5
Nodegui
A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org
Stars: ✭ 7,324 (+1403.9%)
Mutual labels:  cross-platform, gui, qt
Nodegui Starter
A starter repo for NodeGui projects
Stars: ✭ 93 (-80.9%)
Mutual labels:  cross-platform, gui, qt
Qtsharp
Mono/.NET bindings for Qt
Stars: ✭ 532 (+9.24%)
Mutual labels:  cross-platform, gui, qt
Screencloud
Screenshot sharing application for Windows, Mac and Linux.
Stars: ✭ 537 (+10.27%)
Mutual labels:  cross-platform, qt, qt5
Otter Browser
Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5
Stars: ✭ 1,289 (+164.68%)
Mutual labels:  cross-platform, qt, qt5
Swift
Swift XMPP client and Swiften XMPP library
Stars: ✭ 190 (-60.99%)
Mutual labels:  cross-platform, qt, qt5
Flameshot
Powerful yet simple to use screenshot software 🖥️ 📸
Stars: ✭ 15,429 (+3068.17%)
Mutual labels:  cross-platform, gui, qt
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-72.48%)
Mutual labels:  cross-platform, qt, qt5
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (-59.14%)
Mutual labels:  gui, qt, qt5
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (-43.12%)
Mutual labels:  cross-platform, gui, qt
Qt5.cr
Qt5 bindings for Crystal, based on Bindgen
Stars: ✭ 182 (-62.63%)
Mutual labels:  gui, qt, qt5
Notes
Note-taking application, write down your thoughts.
Stars: ✭ 612 (+25.67%)
Mutual labels:  cross-platform, qt, qt5
Examples
Learn to create a desktop app with Python and Qt
Stars: ✭ 1,196 (+145.59%)
Mutual labels:  gui, qt, qt5
Guitar
Git GUI Client
Stars: ✭ 1,136 (+133.26%)
Mutual labels:  gui, qt, qt5
Lqt
Lua Binding for Qt5
Stars: ✭ 30 (-93.84%)
Mutual labels:  gui, qt, qt5
Qhttpengine
HTTP server for Qt applications
Stars: ✭ 112 (-77%)
Mutual labels:  cross-platform, qt, qt5
Project lemonlime
为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统 | 三大桌面系统支持
Stars: ✭ 255 (-47.64%)
Mutual labels:  cross-platform, qt, qt5
Lan Share
Cross platform LAN File transfer application built with Qt C++ framework
Stars: ✭ 317 (-34.91%)
Mutual labels:  cross-platform, qt, qt5

qt.go

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.

Build Status Go Report Card GoDoc Sourcegraph

Features

  • Binding code with no CGO compile cost
  • Popular Qt5 packages (widgets/QML/extras) support
  • Simple go-uic, go-rcc tools
  • full signal/slot support
  • protected method override support
  • default arguments and value wrapper functions
  • Class/Method/Function/Enum comment for godoc
  • Go side signal/slot definition (experimental)

Multiple platforms support

All platforms should be supported, for now some of them are tested:

  • Archlinux/Ubuntu16+
  • MacOS
  • Android
  • Windows

Installation

requirement
  • go 1.9+
  • libffi
  • dlfcn (windows)
FFI

Make sure libffi is installed

Debian based: apt-get install libffi-dev

Arch based: pacman -S libffi

MacOS: brew install libffi

qt.go:
go get -v -u github.com/kitech/qt.go
runtime dependency:
git clone https://github.com/kitech/qt.inline.git
cd qt.inline
cmake .
make
cp libQt5Inline.so /usr/lib/libQt5Inline.so
uic/rcc
go get -v -u github.com/kitech/qt.go/cmd/go-uic
go get -v -u github.com/kitech/qt.go/cmd/go-rcc

Full Installation

Examples

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

Community

Internals

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.

Internal document

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].