Qtah is a set of Qt bindings for Haskell, providing a traditional imperative interface to a mature GUI toolkit. Qtah uses Hoppy to bind to C++ code, and is free software under the Lesser General Public License v3.
As of version 0.8.0, Qtah includes 230 classes from QtCore, QtGui, and QtWidgets. Patches for any area are welcome, so if you'd like to contribute or give feedback, send me an email or head on over to GitLab (link below). Adding a new function or method is usually just a few lines of code.
Thanks to the Qt documentation mentioning when items are added to the API, Qtah can generate bindings for arbitrary versions of Qt. Currently all 5.x versions are supported, though I am only testing against stable Qt versions on Gentoo and NixOS.
I have Goatee partly ported to Qtah: screenshot.
2021-11-18: Porting Goatee to Qt.
2021-02-06: Hoppy 0.8.0 and Qtah 0.8.0 released.
2018-06-05: Hoppy 0.5.0 and Qtah 0.5.0 released.
2018-02-09: Gentoo overlay now listed in Layman.
2018-01-27: Hoppy 0.4.0 and Qtah 0.4.0 released.
See all posts related to Qtah.
Qtah configured for Qt 5 is available on Hackage as qtah-qt5. During installation, Qtah will automatically configure itself for the specific Qt version you have installed. There are examples available in qtah-examples, and also some supporting packages qtah-cpp-qt5 and qtah-generator that are used in the build process.
$ cabal install qtah-qt5 $ cabal install --enable-executable-dynamic qtah-examples
Using, building, and extending Qtah is documented in the readme. API documentation is available (this is currently a 0.3.0 snapshot, install a later version to get its documentation).
Gentoo users can use the ebuilds in my overlay, and Nix expressions are available for Nix users.
Qtah is hosted on GitLab: project page, issue tracker. Clone the source from one of: