Golang GUI: Difference between revisions
Adamcolton (talk | contribs) Created page with "I've looked around for GUI toolkits for Go before and haven't hit on anything I really like so (classic style) I'll take a crack at my own. == Logic Layer == The logic of the..." |
Adamcolton (talk | contribs) No edit summary |
||
| (10 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
If this is done right, I should be able to plug in many UI tool kits. | If this is done right, I should be able to plug in many UI tool kits. | ||
== GTK == | == Core Toolkits == | ||
=== GTK === | |||
I think this is the toolkit I want to go with. Supports the big 3 OS. | I think this is the toolkit I want to go with. Supports the big 3 OS. | ||
I should look at [https://en.wikipedia.org/wiki/Glade_Interface_Designer Glade] again. If I can make that work, it would save a lot of work because it's close to what I want. | I should look at [https://en.wikipedia.org/wiki/Glade_Interface_Designer Glade] again. If I can make that work, it would save a lot of work because it's close to what I want. | ||
== QT == | * https://github.com/gotk3/gotk3 | ||
=== QT === | |||
This is more open than I initially thought and possibly better supported. | This is more open than I initially thought and possibly better supported. | ||
https://www.amazon.com/Hands-GUI-Programming-Qt5-cross-platform-ebook/dp/B075Z3H7DS/ | |||
=== TK === | |||
Used in python, maybe? | |||
=== Electron === | |||
I think it requires Node. Unfortunately I think this is the way to go. It also means I'll probably need to learn some Node and modern JS. And I'll need to choose a JS framework like Vue or React. | |||
=== Wails === | |||
Uses Vue or React, so more Node. | |||
== Shiny == | |||
Both GTK and QT require bindings, which make me a bit nervous. I've already got shiny working once, I could build off this, or re-work it to support native tools. | |||
== Canvas Widgets == | |||
Kind of hacky, but I could build a custom widget toolkit myself. Then it would work everywhere. Just thinking about getting text working though kind of hurts my head. | |||
== Server == | |||
This would require getting away from Go, but I could write either a GTK or QT server and then anything could use it. I could do this in Rust. | |||
[[Code]] | [[Category:Code]] | ||
Latest revision as of 13:41, 21 September 2020
I've looked around for GUI toolkits for Go before and haven't hit on anything I really like so (classic style) I'll take a crack at my own.
Logic Layer
The logic of the application should be wholly separate from the GUI. The application should register listeners to handle GUI events.
If this is done right, I should be able to plug in many UI tool kits.
Core Toolkits
GTK
I think this is the toolkit I want to go with. Supports the big 3 OS.
I should look at Glade again. If I can make that work, it would save a lot of work because it's close to what I want.
QT
This is more open than I initially thought and possibly better supported. https://www.amazon.com/Hands-GUI-Programming-Qt5-cross-platform-ebook/dp/B075Z3H7DS/
TK
Used in python, maybe?
Electron
I think it requires Node. Unfortunately I think this is the way to go. It also means I'll probably need to learn some Node and modern JS. And I'll need to choose a JS framework like Vue or React.
Wails
Uses Vue or React, so more Node.
Shiny
Both GTK and QT require bindings, which make me a bit nervous. I've already got shiny working once, I could build off this, or re-work it to support native tools.
Canvas Widgets
Kind of hacky, but I could build a custom widget toolkit myself. Then it would work everywhere. Just thinking about getting text working though kind of hurts my head.
Server
This would require getting away from Go, but I could write either a GTK or QT server and then anything could use it. I could do this in Rust.