Skip to content
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 · 31 comments
Open

Actual name and wiki entry #382

ShalokShalom opened this issue Jun 30, 2017 · 31 comments

Comments

@ShalokShalom
Copy link

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
Copy link
Owner

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
Copy link
Author

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
Copy link
Author

ShalokShalom commented Jul 1, 2017

CuteGo
QuteGo

GoCute
GoQute

@ShalokShalom ShalokShalom reopened this Jul 1, 2017
@joeblew99
Copy link

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

@masiulaniec
Copy link

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
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
Copy link
Owner

@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
Copy link
Author

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
Copy link
Owner

@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
Copy link
Author

Thanks a lot, that helps me further.

@RadhiFadlillah
Copy link
Contributor

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
Copy link
Author

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

@therecipe
Copy link
Owner

@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
Copy link

Goqu is already taken by sql builder.

@ShalokShalom
Copy link
Author

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

screenshot_20170831_125104

@therecipe
Copy link
Owner

@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
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
Copy link
Contributor

@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
Copy link
Author

Go + Qt = Goat ^-^

@amitdo
Copy link

amitdo commented Feb 7, 2018

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

@ShalokShalom
Copy link
Author

Qopher sounds nice too

@sebnarvaez
Copy link

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

@tobimensch
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)

@paboum
Copy link

paboum commented Oct 28, 2019

  • widGots (widgets + Go)
  • cuteWidGots
  • (Qt) widGet toOlkit (could be mixed in a logo)
  • Quasar TechnolOGies (from the original library name ethymology)
  • QGopher
  • QB4G or GB4Go (Qt Bindings for Go)
  • QW4G or GW4Go (Qt Wrappers for Go)
  • Goatee ("Go" + "cutie"), a style of facial hair incorporating hair on a man's chin but not his cheeks

@ilovesusu
Copy link

GoQt
like
pyqt

@ShalokShalom
Copy link
Author

GoQt is already in use

@uvatbc
Copy link

uvatbc commented Apr 15, 2020

QGoatee

@nyiyui
Copy link

nyiyui commented Apr 30, 2020

goside like pyside

@tox2ik
Copy link

tox2ik commented Dec 1, 2020

CuteWalk ot QuteWalk

@brenthuisman
Copy link

Qt for Go (similar to the official Python bindings).

@w3bb
Copy link

w3bb commented Jul 25, 2021

gute, it's how you pronounce qt but with a g. Or maybe just gt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests