special / qgoscene

Start QML applications from Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

qgoscene — start QML applications from Go

qgoscene provides a simple API for displaying a QML scene from a Go application, functionally similar to embedding Qt's qmlscene tool.

Combined with some form of RPC (not part of this package), this can form the basis of a QML interface for a Go application.

qgoscene is not a Qt/QML binding for Go. There is explicitly no control or communication with the QML scene, and API is very limited. Past attempts at wrapping the full QML API had serious limitations and weren't useful for non-trivial applications.

Usage

go get -u github.com/special/qgoscene

Build with -tags qt6 to link against Qt 6.

package main

import (
	"os"
	"github.com/special/qgoscene"
)

const (
	qml = `
import QtQuick 2.9
import QtQuick.Window 2.2

Window {
	width: 500
	height: 500
	visible: true
	color: "green"
}`
)

func main() {
	qgoscene.NewSceneData(qml, os.Args).Exec()
}

Todo

  • Support loading QML from compiled-in resources, including relative files
  • Nicer error handling

About

Start QML applications from Go


Languages

Language:Go 61.4%Language:C++ 30.5%Language:C 8.0%