Is there any maintained Qt binding for haskell?

I have been searching for a Qt binding for a while. But all bindings seems to be either dead or using an ancient version of GHC.

  • qtHaskell: Last updated 2019, not on Hackage/Stackage
  • qtah-qt5: Using an ancient version of GHC, last updated 2021
  • qt: Last updated 2015, dead

I know there is a working gtk3/gtk4 binding but gtk really feels very wired on MacOS or Windows.

4 Likes

I’m not aware of any other bindings. However, I’ve had considerable success writing the GUI portion in C++ and the logic in Haskell — I wrote up the details here: brassica/ARCHITECTURE.md at master · bradrn/brassica · GitHub

1 Like

That is an interesting approach. I am considering a similar approach that use python for GUI and communicate with Haskell via socket.

That sounds like it should work just as well.

qtah is active: CHANGELOG.md · master · Bryan Gardiner / qtah · GitLab

3 Likes

Just spend a few hours building this package and it works pretty well. Although its not integrating with optics makes it a little annoying to write. I have tried write something with haskell-gi and OverLoadedLabels simplifies the code a lot.
Anyway, thanks.

3 Likes

Highly recommend qtah, I’ve built an application using it ~6 years ago and had a great experience with the library, plus the author was very helpful whenever I had a request and guided me through contributing a bunch of new functionality.

1 Like

I had never heard of qtah but it looks great. Thanks for linking it! It’s so great to see all the truly great Haskell libraries individuals are out there building.

Another option would be to use wxHaskell, which is in the process of being revived, along with a QT backend for wxWidgets. Then you’d have native windows for MacOS and Windows.

1 Like

I’m not convinced either the Qt or wxHaskell bindings are yet usable for any serious Haskell project. On the Qt side, the bindings are well-nigh unusable on Windows (or at least they were last time I tried), and besides I seem to recall that they’re a bit incomplete. On the wxHaskell side, the updates are great news, but ‘in the process of being revived’ is still not ‘usable’. Hopefully in a few months’ time I’ll be able to say something different about wxHaskell, at least.