Gtk4DotNet 1.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Gtk4DotNet --version 1.2.0
                    
NuGet\Install-Package Gtk4DotNet -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Gtk4DotNet" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Gtk4DotNet" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Gtk4DotNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Gtk4DotNet --version 1.2.0
                    
#r "nuget: Gtk4DotNet, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Gtk4DotNet@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Gtk4DotNet&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Gtk4DotNet&version=1.2.0
                    
Install as a Cake Tool

Gtk4DotNet

.Net 6 bindings for GTK 4

Mostly functional approach like this:

using GtkDotNet;

using LinqTools;

return Application.Run("org.gtk.example", app =>
    Application
        .NewWindow(app)
        .SideEffect(win => win.SetTitle("Hello Gtk👍"))
        .SideEffect(win => win.SetChild(
            Grid
                .New()
                .SideEffect(g => g.Attach(
                    Button
                        .NewWithLabel("Button 1")
                        .SideEffect(btn => btn.SignalConnect("clicked", clicked))
                    , 0, 0, 1, 1))
                .SideEffect(g => g.Attach(
                    Button
                        .NewWithLabel("Button 2")
                        .SideEffect(btn => btn.SignalConnect("clicked", clicked))
                    , 1, 0, 1, 1))
                .SideEffect(g => g.Attach(
                    Button
                        .NewWithLabel("Quit")
                        .SideEffect(btn => btn.SignalConnect("clicked", () => win.Close()))
                    , 0, 1, 2, 1))
        ))
        .Show());

void clicked() => Console.WriteLine("Clicked button");    

Prerequisites

Ubuntu

  • sudo apt install libgtk-4-dev

for use with WebView only:

  • sudo apt install libwebkitgtk-6.0-dev

Installation of GTK Schema

    sudo install -D org.gtk.example.gschema.xml /usr/share/glib-2.0/schemas/
    sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

Usage

Look at the sample programs (https://github.com/uriegel/Gtk4DotNet)

Checking if memory is being freed

To check if GObjects are being freed, just run

GObject.AddWeakRef(obj, (_, obj) => Console.WriteLine("... is being freed));

If this object is finalized, then the callback will be called.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Gtk4DotNet:

Package Downloads
WebWindowNetCore

A C# Webview Application for Windows and Linux similar to Electron based on WebView2 (Windows) and GTK WebKit (Linux)

WebWindowNetCore.Linux

A C# Webview Application for Linux similar to Electron based on GTK WebKit

Gtk4DotNet.FSharp

.NET 8 F# Bindings for GTK 4, functional declarative similar to REACT or Kotlin Compose

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
7.0.65-beta-65 134 5/17/2025
7.0.64-beta-64 114 5/17/2025
7.0.63-beta-63 147 5/16/2025
7.0.62-beta-62 190 5/16/2025
7.0.61-beta-61 221 5/14/2025
7.0.60-beta-60 227 5/12/2025
7.0.59-beta-59 195 5/12/2025
7.0.58-beta-58 147 4/18/2025
7.0.57-beta-57 199 4/14/2025
7.0.56-beta-56 136 4/13/2025
7.0.55-beta-55 138 4/13/2025
7.0.54-beta-54 134 4/12/2025
7.0.53-beta-53 141 4/12/2025
7.0.52-beta-52 95 4/12/2025
7.0.51-beta-51 131 4/11/2025
7.0.50-beta-50 164 4/10/2025
7.0.49-beta-49 163 4/10/2025
7.0.48-beta-48 158 4/10/2025
7.0.47-beta-47 162 4/10/2025
7.0.46-beta-46 158 4/10/2025
7.0.45-beta-45 151 4/9/2025
7.0.44-beta-44 168 4/8/2025
7.0.43-beta-43 154 4/8/2025
7.0.42-beta-42 159 4/7/2025
7.0.41-beta-41 153 4/6/2025
7.0.40-beta-40 128 4/6/2025
7.0.39-beta-39 102 4/5/2025
7.0.38-beta-38 97 4/5/2025
7.0.37-beta-37 85 4/5/2025
7.0.36-beta-36 165 4/3/2025
7.0.35-beta-35 156 4/3/2025
7.0.34-beta-34 152 4/3/2025
7.0.33-beta-33 159 4/2/2025
7.0.32-beta-32 159 4/1/2025
7.0.31-beta-31 161 4/1/2025
7.0.30-beta-30 163 3/31/2025
7.0.29-beta-29 155 3/31/2025
7.0.28-beta-28 146 3/30/2025
7.0.27-beta-27 470 3/24/2025
7.0.26-beta-26 458 3/24/2025
7.0.25-beta-25 407 3/24/2025
7.0.24-beta-24 410 3/24/2025
7.0.23-beta-23 263 3/23/2025
7.0.22-beta-22 73 3/22/2025
7.0.21-beta-21 71 3/22/2025
7.0.20-beta-20 90 3/21/2025
7.0.19-beta-19 132 3/21/2025
7.0.18-beta-18 148 3/20/2025
7.0.17-beta-17 139 3/20/2025
7.0.16-beta-16 150 3/19/2025
7.0.15-beta-15 139 3/18/2025
7.0.14-beta-14 143 3/18/2025
7.0.13-beta-13 140 3/18/2025
7.0.12-beta-12 149 3/17/2025
7.0.11-beta-11 148 3/16/2025
7.0.10-beta-10 82 3/14/2025
7.0.9-beta-9 97 3/14/2025
7.0.8-beta-8 116 3/14/2025
7.0.7-beta-7 94 3/2/2025
7.0.6-beta-6 132 2/26/2025
7.0.5-beta-5 106 2/25/2025
7.0.4-beta-4 109 2/24/2025
7.0.3-beta-3 106 2/24/2025
7.0.2-beta-2 100 2/24/2025
7.0.1-beta-1 90 2/24/2025
7.0.0-beta-0 106 2/23/2025
6.8.1 238 2/15/2025
6.8.0 115 2/15/2025
6.7.1 195 2/8/2025
6.7.0 128 2/8/2025
6.6.1 113 2/8/2025
6.6.0 194 2/3/2025
6.5.6 130 2/2/2025
6.5.5 198 9/7/2024
6.5.4 260 8/31/2024
6.5.4-beta6 113 8/31/2024
6.5.4-beta5 114 8/31/2024
6.5.4-beta4 103 8/31/2024
6.5.4-beta3 112 8/31/2024
6.5.3 312 8/23/2024
6.5.3-beta3 108 8/31/2024
6.5.3-beta2 113 8/31/2024
6.5.3-beta1 106 8/31/2024
6.5.2 167 8/19/2024
6.5.1 150 8/19/2024
6.5.0 159 8/18/2024
6.4.0 167 8/13/2024
6.3.0 155 8/12/2024
6.2.1 180 8/11/2024
6.2.0 148 8/11/2024
6.1.3 166 8/10/2024
6.1.2 155 8/9/2024
6.1.1 145 8/9/2024
6.1.0 338 4/29/2024
6.0.0 153 4/27/2024
5.4.0 185 4/20/2024
5.3.11 152 4/20/2024
5.3.10 142 4/20/2024
5.3.9 163 4/19/2024
5.3.8 167 3/26/2024
5.3.7 162 3/13/2024
5.3.6 230 1/20/2024
5.3.5 157 1/20/2024
5.3.4 207 1/7/2024
5.3.3 183 1/3/2024
5.3.2 180 1/2/2024
5.3.1 163 1/2/2024
5.3.0 167 1/2/2024
5.2.0 186 12/22/2023
5.1.0 160 12/22/2023
5.0.0 246 12/14/2023
4.0.0 158 12/13/2023
3.4.0 156 12/10/2023
3.3.1 163 12/10/2023
3.3.0 143 12/10/2023
3.2.0 152 12/9/2023
3.1.1 151 12/9/2023
3.1.0 151 12/9/2023
3.0.0 176 12/9/2023
2.0.0 154 11/28/2023
1.4.0 221 11/17/2023
1.3.3 122 11/16/2023
1.3.2 148 11/16/2023
1.3.1 141 11/16/2023
1.3.0 155 11/16/2023
1.2.1 168 10/29/2023
1.2.0 161 10/22/2023
1.1.0 242 4/24/2023
1.0.0 213 4/23/2023

Beginning...