<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">GUI – Haskell – Aelve Guide</title><id>https://guide.aelve.com/haskell/feed/category/ugvn4hsf</id><updated>2019-07-04T12:24:54Z</updated><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/feed/category/ugvn4hsf"/><entry><id>i69wgvo6</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">sdl2</title><updated>2019-07-04T12:24:54Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;sdl2&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/sdl2&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Not directly for applications, but for graphics, games, controller interaction and sound. Some games have been written in Haskell with sdl2.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-i69wgvo6"/></entry><entry><id>h9gkbz2l</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">gi-gtk</title><updated>2017-04-16T16:00:10Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;gi-gtk&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/gi-gtk&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;GTK Frontend library.
More recent than gtk3.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-h9gkbz2l"/></entry><entry><id>rqqvksuv</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">qtah-qt5</title><updated>2017-04-16T15:57:23Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;qtah-qt5&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/qtah-qt5&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-rqqvksuv"/></entry><entry><id>dizvkro8</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">hsqml</title><updated>2016-04-14T10:10:09Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;hsqml&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/hsqml&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-dizvkro8"/></entry><entry><id>ros3ywsx</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">fltkhs</title><updated>2016-04-14T10:09:17Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;fltkhs&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/fltkhs&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;FLTKHS is a Haskell binding to &lt;a href=&#34;https://www.fltk.org/&#34;&gt;FLTK&lt;/a&gt;. It is simple, fast and has excellent documentation.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Easy to install (even on Windows) thanks to bundled FLTK&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Custom Widgets can be added in Haskell&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Good documentation&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Many examples&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Can use FLUID as a GUI designer&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;FLTK has LGPL license, but with static linking exception so it can be used also in commercial software and embedded systems (see &lt;a href=&#34;https://www.fltk.org/articles.php?L364+I0+TFAQ+P1+Q&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://www.fltk.org/articles.php?L365+I0+TFAQ+P1+Q&#34;&gt;here&lt;/a&gt;)&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;OpenGL and SVG rendering are available&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Looks very retro, though some themes are available&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Very thin layer, therefore very IO driven and based on FLTK primitives. No high-level interface&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Cairo not bound&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-ros3ywsx"/></entry><entry><id>zkvwu4y9</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">wx</title><updated>2016-04-14T10:08:25Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;wx&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/wx&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-zkvwu4y9"/></entry><entry><id>oz7cqrw2</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">threepenny-gui</title><updated>2016-04-14T10:08:20Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;threepenny-gui&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/threepenny-gui&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Can utilise browser technology&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Only available in the browser.&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-oz7cqrw2"/></entry><entry><id>yk1iale6</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">gtk3</title><updated>2016-04-14T10:07:32Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;gtk3&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/gtk3&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Haskell binding to the Gtk3 library (also GTK2 is available in the gtk2 library for older systems which do not yet support gtk3).&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Well documented, some snippets can be found on stack overflow, some applications can be found on github that use it.&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Most mature GUI framework binding in Haskell (also gtk2 for older systems available)&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Nearly all functionality of GTK is supported (as well as GIO, Pango, Cairo, OpenGL, SourceView, GDK and Webkit)&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Backends for the &lt;a href=&#34;https://hackage.haskell.org/package/Chart-gtk&#34;&gt;Chart&lt;/a&gt; library and &lt;a href=&#34;https://hackage.haskell.org/package/diagrams-gtk&#34;&gt;diagrams&lt;/a&gt; library are available to directly draw in GTK windows&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;LGPL license (from GTK itself), which also applies to the Haskell binding (which is normally statically linked).&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;No deriving of new widgets in Haskell&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Very low level, IO driven interface (thin layer around C functions)&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/gui-ugvn4hsf#item-yk1iale6"/></entry></feed>