# Looking for a simple GUI

**URL:** <https://discourse.julialang.org/t/looking-for-a-simple-gui/129959>\
**Category:** New to Julia\
**Tags:** gui\
**Created:** [June 17, 2025, 8:49am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959 "2025-06-17T08:49:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![FSUfan](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FSUfan](https://discourse.julialang.org/u/FSUfan)\
**Post date:** [June 17, 2025, 8:49am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959/1 "2025-06-17T08:49:29Z")

</div>

The screenshot below was created using Python and Qt5.  
I would like to create something similar with Julia.  
I looked around for a GUI that would suit my needs. There are many available, but most of them do things I don’t need.  
Could you recommend a suitable GUI?

> **[imgbox - fast, simple image host](https://imgbox.com/K2Jkjm4R)**
>
> Use imgbox to upload, host and share all your images. It's simple, free and blazing fast!

---

<div class="post-metadata">

**Author:** ![karei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/karei/32/214809_2.png) [@karei](https://discourse.julialang.org/u/karei)\
**Post date:** [June 17, 2025, 9:19am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959/2 "2025-06-17T09:19:35Z")

</div>

Do you want to develop a web GUI or a standalone desktop application? If the latter, Julia and Qt6 (Qt Quick + QML). QML.jl

---

<div class="post-metadata">

**Author:** ![FSUfan](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FSUfan](https://discourse.julialang.org/u/FSUfan)\
**Post date:** [June 17, 2025, 9:32am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959/3 "2025-06-17T09:32:39Z")

</div>

@karei. Thank you. I’m son’t know QML, but will give it a try

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [June 17, 2025, 10:32am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959/4 "2025-06-17T10:32:07Z")

</div>

You can use GLMakie 🙂

Took the chance to find out if claude code can create a GUI from a picture with Makie and it almost worked out:

```julia
using GLMakie

# Create the main figure with proper layout
fig = Figure(resolution = (1200, 800), backgroundcolor = :lightgray)

# Header widgets
header = GridLayout(fig[1, :], tellwidth=false, height=50)
year_menu = Menu(header[1, 1], options = ["2024", "2025", "2026"], default = "2025", width = 80,)
month_menu = Menu(header[1, 2], options = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], default = "Giugno", width = 120)
select_btn = Button(header[1, 3], label = "Select", width = 80)
Label(header[1, 4], "JUST FOR TESTING", fontsize = 20, color = :red, halign = :center)
# Calendar area
calendar = GridLayout(fig[2, :], tellwidth=false, tellheight=false)
cal_ax = Axis(calendar[1, 1], limits = (0, 8, 0, 8), backgroundcolor = :white, title = "Giugno 2025", titlecolor = :blue, titlesize = 16)
hidedecorations!(cal_ax)

# Day headers
days = ["L", "M", "M", "G", "V", "S", "D"]
for (i, day) in enumerate(days)
    text!(cal_ax, i, 7, text = day, fontsize = 12)
end

# Calendar data with colors
calendar_data = [
    (1, 6, "1", :white), (2, 6, "2", :white), (3, 6, "3", :white), (4, 6, "4", :white), (5, 6, "5", :white), (6, 6, "6", :white), (7, 6, "7", :white),
    (1, 5, "8", :white), (2, 5, "9", :yellow), (3, 5, "10", :white), (4, 5, "11", :white), (5, 5, "12", :white), (6, 5, "13", :white), (7, 5, "14", :white),
    (1, 4, "15", :white), (2, 4, "16", :white), (3, 4, "17", :orange), (4, 4, "18", :white), (5, 4, "19", :orange), (6, 4, "20", :white), (7, 4, "21", :white),
    (1, 3, "22", :white), (2, 3, "23", :yellow), (3, 3, "24", :yellow), (4, 3, "25", :white), (5, 3, "26", :white), (6, 3, "27", :white), (7, 3, "28", :white),
    (1, 2, "29", :white), (2, 2, "30", :white)
]

# Draw calendar cells
for (x, y, day, color) in calendar_data
    poly!(cal_ax, Point2f[(x-0.5, y-0.5), (x+0.5, y-0.5), (x+0.5, y+0.5), (x-0.5, y+0.5)], color = color, strokecolor = :black, strokewidth = 1)
    text!(cal_ax, x, y, text = day, fontsize = 10)
end

# Side panel with interactive buttons - create a nested grid layout
side_grid = GridLayout(calendar[1, 2], tellwidth=false, tellheight=false)

toggle_btn = Toggle(side_grid[1, 1], active = false)
Label(side_grid[1, 1], "Deact info", valign = :bottom, fontsize = 10, halign = :right, tellwidth=false, tellheight=false)

btn_stripes = Button(side_grid[2, 1], label = "Stripes", width = 120, height = 25)
btn_refunds = Button(side_grid[3, 1], label = "Refunds", width = 120, height = 25)
btn_monthly = Button(side_grid[4, 1], label = "Monthly", width = 120, height = 25)
btn_add_row = Button(side_grid[5, 1], label = "Add a row", width = 120, height = 25)
btn_add_cur = Button(side_grid[6, 1], label = "Add a cur", width = 120, height = 25)
btn_pdf_man = Button(side_grid[7, 1], label = "Pdf manman", width = 120, height = 25)
btn_pdf_aum = Button(side_grid[8, 1], label = "Pdf AUM", width = 120, height = 25)
btn_transcript = Button(side_grid[9, 1], label = "Transcript", width = 120, height = 25)

# Add interactive callbacks
on(select_btn.clicks) do _
    println("Select clicked - Year: ", year_menu.selection[], " Month: ", month_menu.selection[])
end

on(btn_stripes.clicks) do _
    println("Stripes clicked!")
end

on(btn_refunds.clicks) do _
    println("Refunds clicked!")
end

on(btn_monthly.clicks) do _
    println("Monthly clicked!")
end

on(btn_add_row.clicks) do _
    println("Add a row clicked!")
end

on(btn_add_cur.clicks) do _
    println("Add a cur clicked!")
end

on(btn_pdf_man.clicks) do _
    println("Pdf manman clicked!")
end

on(btn_pdf_aum.clicks) do _
    println("Pdf AUM clicked!")
end

on(btn_transcript.clicks) do _
    println("Transcript clicked!")
end

on(toggle_btn.active) do active
    println("Deact info toggled: ", active)
end

# Adjust column sizing to make sidebar smaller
colsize!(calendar, 2, Auto(0.2))

# Display the figure
display(fig)

```

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/7/773ddc65af13a856caf9ebcbfeedb5f6160dfadc.png)

---

<div class="post-metadata">

**Author:** ![FSUfan](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@FSUfan](https://discourse.julialang.org/u/FSUfan)\
**Post date:** [June 17, 2025, 11:02am UTC](https://discourse.julialang.org/t/looking-for-a-simple-gui/129959/5 "2025-06-17T11:02:21Z")

</div>

@sdanish. OHHHHH!!! You made the job for me 🙂
