New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Actual name and wiki entry #382

Open
ShalokShalom opened this Issue Jun 30, 2017 · 23 comments

Comments

@ShalokShalom
Copy link

ShalokShalom commented Jun 30, 2017

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

@therecipe

This comment has been minimized.

Copy link
Owner

therecipe commented Jun 30, 2017

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 :)

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jul 1, 2017

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.

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jul 1, 2017

CuteGo
QuteGo

GoCute
GoQute

@ShalokShalom ShalokShalom reopened this Jul 1, 2017

@joeblew99

This comment has been minimized.

Copy link

joeblew99 commented Jul 3, 2017

Nice name :) needs some name that sticks in people's minds

@masiulaniec

This comment has been minimized.

Copy link

masiulaniec commented Jul 15, 2017

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.

@masiulaniec

This comment has been minimized.

Copy link

masiulaniec commented Jul 15, 2017

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.

@therecipe

This comment has been minimized.

Copy link
Owner

therecipe commented Jul 25, 2017

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

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jul 27, 2017

@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?

@therecipe

This comment has been minimized.

Copy link
Owner

therecipe commented Jul 28, 2017

@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:

func GetLibs() []string {
libs := []string{
"Core",
"AndroidExtras",
"Gui",
"Network",
"Xml",
"DBus",
"Nfc",
"Script", //depreached (planned) in 5.6
"Sensors",
"Positioning",
"Widgets",
"Sql",
"MacExtras",
"Qml",
"WebSockets",
"XmlPatterns",
"Bluetooth",
"WebChannel",
"Svg",
"Multimedia",
"Quick",
"Help",
"Location",
"ScriptTools", //depreached (planned) in 5.6
"UiTools",
//"X11Extras", //TODO:
"WinExtras",
"WebEngine",
"TestLib",
"SerialPort",
"SerialBus",
"PrintSupport",
//"PlatformHeaders", //missing imports/guards
"Designer",
"Scxml",
"Gamepad",
"Purchasing", //GPLv3 & LGPLv3
"DataVisualization", //GPLv3
"Charts", //GPLv3
//"Quick2DRenderer", //GPLv3
"Speech",
"QuickControls2",
"Sailfish",
"WebView",
//"NetworkAuth", //TODO:
"RemoteObjects",
"WebKit",
}

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.

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jul 29, 2017

Thanks a lot, that helps me further.

@RadhiFadlillah

This comment has been minimized.

Copy link
Contributor

RadhiFadlillah commented Jul 29, 2017

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.

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jul 29, 2017

This repo suggests to name it therecipe-qt: https://github.com/wzwmzm/therecipe-qt/commits/master ;)

@therecipe

This comment has been minimized.

Copy link
Owner

therecipe commented Aug 1, 2017

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

@Huholoman

This comment has been minimized.

Copy link

Huholoman commented Aug 3, 2017

Goqu is already taken by sql builder.

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Aug 31, 2017

It might be nice to offer a template for the Qt Creator:

screenshot_20170831_125104

@therecipe

This comment has been minimized.

Copy link
Owner

therecipe commented Sep 4, 2017

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

@mewmew

This comment has been minimized.

Copy link

mewmew commented Sep 10, 2017

If it has to be renamed, I'd go for cute; as that is both memorable and roughly how I would pronounce qt.

@justinclift

This comment has been minimized.

Copy link
Contributor

justinclift commented Jan 21, 2018

@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. 😄

@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Jan 29, 2018

Go + Qt = Goat ^-^

@amitdo

This comment has been minimized.

Copy link

amitdo commented Feb 7, 2018

  • QtAndGo
  • QG
  • QGo
  • Go2Qt
  • Go4Qt
  • Qpher (Qt+Gopher)
  • Qter
@ShalokShalom

This comment has been minimized.

Copy link

ShalokShalom commented Feb 8, 2018

Qopher sounds nice too

@larvasapiens

This comment has been minimized.

Copy link

larvasapiens commented Jul 21, 2018

I second "Qopher". "Quza" is another option (refering to how Mexicans refer to Gophers, "Tuza").

@tobimensch

This comment has been minimized.

Copy link

tobimensch commented Nov 11, 2018

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment