
A Book about Qt5 - ingve
http://qmlbook.github.io/
======
trishume
I read this book a while ago and it was pretty good.

Qt5 is really underused for how good it is. It's a really good platform for
making native apps and it even has bindings for many different languages.

And since it can be used for IOS&Android apps it's a great competitor to React
Native. It is reactive and declarative like React but with way less
boilerplate and everything is so much easier to do, and it supports more
platforms. The only thing React Native has on it is native looking widgets for
IOS, but if you plan on using your own design anyway, that's not a problem.

You get the productivity of a modern reactive framework with the completeness
of Qt. It has things like a GUI builder that modifies and generates code for
you, and the code it outputs is close to what a human would write, so you
aren't locked into it.

~~~
PeCaN
I really want to like Qt5, but it's just so... big, and using it from C++ is
so cumbersome. I don't suppose you're familiar with any quality Rust or Nim or
D or some other compiled-language-that-sucks-less bindings? There's
[https://github.com/cyndis/qmlrs](https://github.com/cyndis/qmlrs), but that
seems very incomplete/sketchily maintained so far (which is the problem with
most bindings that I know of).

~~~
trishume
The trick is that Qt5 != Qt Quick. There aren't many bindings to Qt5 since the
binding surface is enormous and very C++-like.

The QML bindings for other languages don't have to cover much surface area
though. They look minimal but most of them are eminently usable because all
the UI logic is in the QML+JS, all you need in a binding is a way to pass data
in and out.

D, Rust, Go, Ruby, Python, etc... all have good enough bindings, that work for
now and even if they do need some patching, aren't that big or hard to patch
yourself. I've never used them myself (I just use C++, but I plan on using D
for a QML app someday), but I know some other projects that do like
[https://github.com/limetext/lime](https://github.com/limetext/lime)

~~~
baldfat
I now want to see if I can pull off the bindings for Racket using FFI Library.
[http://docs.racket-lang.org/foreign/](http://docs.racket-lang.org/foreign/)

Something to do while snowed in.

~~~
fineIllregister
Something I've thought about, too. Dr Racket especially would benefit from a
Qt version.

------
jlgaddis
It's not just "A Book about Qt5", it's a free e-book about Qt5 that's
available in HTML, PDF, ePub, and even QtHelp form.

From the submission title, I assumed it was a non-free, dead tree book.

------
fernly
OK I be confused. This seems, to a quick poke-around, to be all about QML. The
Qt that I know, from writing a couple of apps using PyQt, is about windows and
widgets made by creating instances of classes, and connecting signals to
sockets and menu actions to handlers. It's a whole different thing entirely!
Like their discussion of MVP has the basic concepts but I know MVP by way of
subclassing QAbstractTableModel and QTableView and QAbstractItemDelegate and
so on.

I don't say they are wrong to say the book is about Qt5. I am just baffled by
how a Qt5 book would not even mention such things.

~~~
pjmlp
Qt seems to be going QML all around and C++ just for the lower layers.

Just check the videos of the conferences.

------
Siecje
Does anyone have any good resources on using Qt5 and QML with Python (PyQt5)?

~~~
dante9999
unfortunately pyqt docs are far from perfect everytime i have to do something
with pyqt i just go to qt docs and just "translate" the concepts and api calls
to python. if you are able to understand c++ syntax and translate that in your
head to python youll be ok. Aside from docs i used some links from this
[https://wiki.python.org/moin/PyQt](https://wiki.python.org/moin/PyQt) but you
have to be careful to avoid outdated resources (current version is 5 and many
things differ between 4 & 5) and not all tutorials are high quality. I also
wrote one tutorial myself BTW
[http://pawelmhm.github.io/python/pyqt/qt/webkit/2015/09/08/b...](http://pawelmhm.github.io/python/pyqt/qt/webkit/2015/09/08/browser.html)

------
rbrogan
Personally, I have enjoyed working in Qt. For anyone looking to get going, I
recommend practicing by transcribing the example code and then try tweaking it
a little (and more so for Qt / GUI development than with other technologies).
It takes a bit of boot time, but once you get going you will find you
naturally start to "get it".

------
daurnimator
The problem with Qt5 is it's almost C++ exclusively. There are some python
bindings in PyQt, but all the other languages are stuck with the QML subset.

Does anyone have a path out of this mess?

------
hitlin37
This is really good resource. Congrats to authors for putting this!

