Open ShalokShalom opened 7 years ago
Hey
The actual name of this binding is simply "qt"?
Yeah, actually it's nameless. I wasn't able to come up with something I liked and the obvious ones like "goqt" or "qtgo" were already taken, so I just called the repo "qt" and moved on. So yeah "qt" is the official name, I guess.
I am asking since i write the entry in Qts own Wiki for it. I am wondering its not there yet..
I'm not sure, I did know that Qt had a wiki but I thought that it was inactive. However, I would be happy if this binding would be listed there :)
I think it IS inactive. ;)
I add qt to this list, no acceptance yet, while Ruby and Perl, both with Qt1 until Qt4 support are still in and two other bindings are also added. https://wiki.qt.io/Language_Bindings
Maybe i ping an admin later, no reaction on Qt either yet.
CuteGo QuteGo
GoCute GoQute
Nice name :) needs some name that sticks in people's minds
Please don't invent cute names. The ruby world is infested with project names such as "cucumber". One of the benefits of go's hierarchical url-based import path approach is that package names can be simply self-describing. In other words, workarounds from systems using flat namespaces don't apply here.
A related question is whether the current split into large core
, gui
, widgets
, etc., packages is the best possible one. It seems like if all I need is a QLabel
, then I should be able to write:
import "github.com/therecipe/qt/QLabel"
... to gain access to the *QLabel.Object
type, thus avoiding the cost of compiling&linking 95% of stuff I don't need.
I wonder if this approach was considered but rejected.
@masiulaniec
A related question is whether the current split into large core, gui, widgets, etc., packages is the best possible one. I wonder if this approach was considered but rejected.
Yeah, I recall thinking about that when I split the large "qt" pkg from the early days into the modules. (And also again when the "widgets" module, took 8gb ram to compile)
I think I tried and rejected it because there was a) a lot of duplicate C and Go code necessary to get it working and b) I had problems with circle dependencies.
@therecipe Any suggestions? I added your project now to the Qt Wiki: https://wiki.qt.io/Language_Bindings
I think it would be nice to list all the supported Qt library's since some offer 4 of them, others all and so on. You wrote, "Most of Qt's API is accessible from Go."
Is there a specific list?
@ShalokShalom Ah, thank you :)
Any suggestions?
Maybe it should be mentioned that you can subclass with the help of qtmoc and thereby extend your "classes" (Go has only structs and no real classes) with custom signals/slots/properties/constructors. That rcc and {win|mac}deployqt are wrapped by qtrcc and qtdeploy, and that you can simply cross compile to most other targets (>= 10) with the help of docker and vagrant. And that you can use docker and vagrant for your CI and CD purposes as well. But there are also a few other things, like the fact that you can re-generate the whole binding with qtsetup against a range of Qt versions. Or that the binding is a one to one mapping against Qt's C++ api. Or maybe even that you don't have to install Qt on your pc at all, if you run the minimal setup with docker. Or that you can override virtual functions (and also signals/slots) at runtime with anonymous functions (Lambdas). And there are probably a few other notable things as well.
But I just took another look to see what has been written for the other bindings, and that was not that much :D So I'm not sure if you can use my suggestions from above at all.
The only thing that comes close to PyQt's and PySide's docs, tutorials and such. Is probably the slack channel: https://gophers.slack.com/messages/qt-binding/details But even I just visit it infrequently.
Also thanks for the name suggestions. But I'm not really sure if I want to attach a "Go" suffix or prefix at all to it.
Is there a specific list? Yes, you can find one here: https://github.com/therecipe/qt/blob/8ca9dc8f59110a659dabdef0201eaeb74f49efc1/internal/binding/parser/helper.go#L257-L311
And another one would be the list of folders at the root of the repo: https://github.com/therecipe/qt Each folder (beside "cmd" and "internal") is a Qt module.
Thanks a lot, that helps me further.
Well, since qt
is pronounced kyu-tee
, what about :
gokyu
goqu
goku
@masiulaniec I think it's fine if package's name is not self-describing, simply because number of vocabulary is limited while number of libraries or packages will keep growing. Even in Go community there are many packages whose name doesn't describing himself, like gin
, martini
, cockroach
, hugo
, etc.
This repo suggests to name it therecipe-qt: https://github.com/wzwmzm/therecipe-qt/commits/master ;)
@RadhiFadlillah Also thanks for the name suggestions :) But I'm not really sure, I'm not really a fan of "go" prefixes or suffixes to be honest.
Goqu is already taken by sql builder.
It might be nice to offer a template for the Qt Creator:
@ShalokShalom Yepp that would be nice, and I think it's also already in the works: https://github.com/gotschmarcel/qtcreator-go But I haven't really looked into that yet.
If it has to be renamed, I'd go for cute
; as that is both memorable and roughly how I would pronounce qt.
@therecipe Since you're stuck when trying to decide on the name, why don't we just do a vote thing and be done with it? As long as the end result isn't horrible that'd "get it done" so there's one less thing taking up potential thinking time. :smile:
Go + Qt = Goat ^-^
Qopher sounds nice too
I second "Qopher". "Quza" is another option (refering to how Mexicans refer to Gophers, "Tuza").
qtee (pronounced cutie) gott (play on German word Gott, which mean's god in English. go stands for go, and tt stands for trolltech, which used to be the name of the company that developed Qt, tt is so to speak the god (creator) of Qt)
GoQt like pyqt
GoQt is already in use
QGoatee
goside like pyside
CuteWalk ot QuteWalk
Qt for Go (similar to the official Python bindings).
gute, it's how you pronounce qt but with a g. Or maybe just gt.
The actual name of this binding is simply "qt"? I am asking since i write the entry in Qts own Wiki for it. I am wondering its not there yet..