# What are the ways to make GUI in Julia (review wanted)

**URL:** https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369
**Category:** Community
**Created:** [August 30, 2023, 2:06pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369 "2023-08-30T14:06:12Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [August 30, 2023, 2:06pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/1 "2023-08-30T14:06:12Z")

</div>

Continuing the discussion from [What steps should the Julia community take to bring Julia to the next level of popularity?](https://discourse.julialang.org/t/what-steps-should-the-julia-community-take-to-bring-julia-to-the-next-level-of-popularity/101389/514)

@frylock asked a question, which I wanted to ask too. I think, it is worth a separate topic.

---

<div class="post-metadata">

### Author: ![vituri](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vituri/32/50422_2.png) [@vituri](https://discourse.julialang.org/u/vituri)
#### Post date: [August 30, 2023, 2:08pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/2 "2023-08-30T14:08:26Z")

</div>

I saw this the other day:

> [@A new Julia GUI Engine has appeared! Mousetrap.jl is now available](https://discourse.julialang.org/t/a-new-julia-gui-engine-has-appeared-mousetrap-jl-is-now-available/103004):
>
> Available here: [https://github.com/Clemapfel/mousetrap.jl](https://github.com/Clemapfel/mousetrap.jl)Features Designed specifically for Julia Choose from 40+ pre-made Widgets, or create your own widgets from scratch Fully abstracted, OpenGL-based rendering engine [Hand-written 10-chapter manual](https://clemens-cords.com/mousetrap/) and [verbose doc strings](https://clemens-cords.com/mousetrap/02_library/classes/) for every symbol Available for Linux, Windows, and Mac Licensed lGPL-3.0, meaning it can be used in closed-source, for-profit projects Background So far, when wanting to create a GUI for Julia, options were limited to [wrap…](https://github.com/JuliaGraphics/Gtk.jl)

---

<div class="post-metadata">

### Author: ![frylock](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/frylock/32/50213_2.png) [@frylock](https://discourse.julialang.org/u/frylock)
#### Post date: [August 30, 2023, 2:19pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/3 "2023-08-30T14:19:24Z")

</div>

I think Mousetrap is GTK4 … which is an amazing and full featured GUI. Polished programs should probably use something like that. I’m sure there are more tutorials out there - but I have been so wrapped up in data analysis that I haven’t really looked for tutorials on GUI code.

I often find that when I need to make a GUI, that I need to prototype it quickly, and that Tk is a good GUI prototyping toolkit … and often customers (company-internal groups that want a thing with buttons that cause things to happen) are satisfied with the prototype (and don’t want to pay for me to develop a nicer-looking one. With that said, it looks like lots of Julians have been working on this:

Tcl/Tk offerings in Julia by:

- [emmt](https://github.com/emmt/Tcl.jl)
- [Tim Holy et., al.](https://julialang.org/blog/2013/05/graphical-user-interfaces-part1/), and [on github](https://github.com/JuliaGraphics/Tk.jl).

---

<div class="post-metadata">

### Author: ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)
#### Post date: [August 30, 2023, 2:29pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/4 "2023-08-30T14:29:44Z")

</div>

> <https://github.com/svaksha/Julia.jl/blob/master/DesktopApplications.md#gui>

This awesome list seems a bit unmaintained. I hope JuliaComputing or some other org could take this over and maintain it better.

I would also add [sunoru/Webviews.jl: 🌐 Julia implementation of webview, a tiny library for creating web-based desktop GUIs.](https://github.com/sunoru/Webviews.jl) and [Clemapfel/mousetrap.jl: Finally, a GUI Engine made for Julia](https://github.com/Clemapfel/mousetrap.jl) to this list.

---

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [August 30, 2023, 2:32pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/5 "2023-08-30T14:32:12Z")

</div>

From the Mousetrap documentation:

> As of version 0.1.0, the Linux- and Windows- version of mousetrap are in beta, while the version targeting MacOS is in alpha. For the beta components, stability should mostly be fine

And for Ubuntu, there is an Issue

> hello world crashes on Ubuntu 22.04

so it is probably not exactly prime time ready yet

---

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [October 17, 2023, 4:13pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/6 "2023-10-17T16:13:50Z")

</div>

Of course having a list of packages is better then nothing…

Nobody?

@TheLateKronos - wouldn’t it be nice to have something like that in [Julia Package Comparison](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567) ? I mean, what we can probably only do is asking for help

---

<div class="post-metadata">

### Author: ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)
#### Post date: [October 17, 2023, 7:34pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/7 "2023-10-17T19:34:46Z")

</div>

I added this on my personal todo list today, due to the QML announcement ^\_^. PR’s welcome!

---

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [October 26, 2023, 2:54pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/8 "2023-10-26T14:54:56Z")

</div>

> [@Could Julia embed graphics lib.?](https://discourse.julialang.org/t/could-julia-embed-graphics-lib/105433/9):
>
> How quickly things change. I have very high confidence in the developer of Mousetrap and that/his projects. Though I haven’t used it or other GUI toolkits. It’s quite recent, he said he would NOT support Makie (I guess wasn’t his personal goal), then added to the roadmap, and I didn’t expect it already implemented. What is it that you actually want to do? It might be you only need Makie, or Mousetrap or other GUI toolkit or both? I see in the docs: Most of the code was based on [Gtk4GLMakie](https://github.com/JuliaGtk/Gtk4Makie.jl),…

@TheLateKronos

@Palli - thank you

---

<div class="post-metadata">

### Author: ![Jordan\_Cluts](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jordan_cluts/32/13753_2.png) [@Jordan\_Cluts](https://discourse.julialang.org/u/Jordan_Cluts)
#### Post date: [October 26, 2023, 3:00pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/9 "2023-10-26T15:00:40Z")

</div>

For those not in the know, what is the “QML announcement”?

---

<div class="post-metadata">

### Author: ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)
#### Post date: [October 26, 2023, 3:49pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/10 "2023-10-26T15:49:08Z")

</div>

Just [this](https://discourse.julialang.org/t/ann-qml-jl-v0-8/104328) discource post from about a month ago. It made me discover QML.

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [October 26, 2023, 5:13pm UTC](https://discourse.julialang.org/t/what-are-the-ways-to-make-gui-in-julia-review-wanted/103369/11 "2023-10-26T17:13:34Z")

</div>

Better look at this: [[ANN] QML.jl 0.8.1 released](https://discourse.julialang.org/t/ann-qml-jl-0-8-1-released/105051)
