GTK+ alternatives and similar libraries
Based on the "GUI" category.
Alternatively, view GTK+ alternatives based on common mentions on social networks and blogs.
imgui9.9 8.5 L1 GTK+ VS imguiDear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
webview9.2 8.1 GTK+ VS webviewTiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)
libui9.1 0.0 GTK+ VS libuiSimple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Stacer8.9 3.0 GTK+ VS StacerLinux System Optimizer and Monitoring - https://oguzhaninan.github.io/Stacer-Web
Duilib8.9 0.0 GTK+ VS DuilibGUI
wxWidgets8.7 9.9 L1 GTK+ VS wxWidgetsCross-Platform C++ GUI Library
nuklear8.6 7.9 GTK+ VS nuklearA single-header ANSI C immediate mode cross-platform GUI library
xmake8.5 10.0 GTK+ VS xmake🔥 A cross-platform build utility based on Lua
NanoGUI8.1 0.0 GTK+ VS NanoGUIMinimalistic GUI library for OpenGL
FTXUI7.8 7.7 GTK+ VS FTXUIFeatures: - Functional style. Inspired by  and React - Simple and elegant syntax (in my opinion). - Support for UTF8 and fullwidth chars (→ 测试). - No dependencies. - Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), - WebAssembly. - Keyboard & mouse navigation. Operating systems: - linux emscripten - linux gcc - linux clang - windows msvc - mac clang
Yue7.2 4.9 GTK+ VS YueA library for creating native cross-platform GUI apps
Sciter7.2 1.6 GTK+ VS SciterSciter: the Embeddable HTML/CSS/JS engine for modern UI development
GacUI7.1 5.2 L1 GTK+ VS GacUIGPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.
Elements C++ GUI library7.1 3.0 GTK+ VS Elements C++ GUI libraryElements C++ GUI library
nana7.0 0.0 L1 GTK+ VS nanaa modern C++ GUI library
RmlUi6.4 8.9 GTK+ VS RmlUiRmlUi - The HTML/CSS User Interface library evolved
libRocket6.1 0.0 L2 GTK+ VS libRocketlibRocket - The HTML/CSS User Interface library
Turbo Vision5.9 6.7 GTK+ VS Turbo VisionA modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
FLTK5.8 9.8 GTK+ VS FLTKFLTK - Fast Light Tool Kit - https://github.com/fltk/fltk - cross platform GUI development
SOUI5.6 3.2 GTK+ VS SOUISOUI是目前为数不多的轻量级可快速开发window桌面程序开源DirectUI库.其前身为Duiengine,更早期则是源自于金山卫士开源版本UI库Bkwin.经过多年持续更新方得此库
copperspice5.3 7.1 GTK+ VS copperspiceCross platform C++ libraries
PDCurses5.3 0.0 L3 GTK+ VS PDCursesPDCurses - a curses library for environments that don't fit the termcap/terminfo model.
MyGUI5.2 1.6 L2 GTK+ VS MyGUIFast, flexible and simple GUI.
CEGUI4.7 - GTK+ VS CEGUIFlexible, cross-platform GUI library.
FINAL CUT4.6 6.4 GTK+ VS FINAL CUTA text-based widget toolkit.
cuda-api-wrappers4.3 8.0 GTK+ VS cuda-api-wrappersThin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX.
neoGFX4.0 9.1 GTK+ VS neoGFXCross-platform GPU-oriented C++ application/game framework
xtd4.0 10.0 GTK+ VS xtdFree open-source modern C++17 / C++20 framework to create console, GUI (forms like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.
CTPG3.5 0.0 GTK+ VS CTPGCompile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time.
gtkmm2.9 5.4 GTK+ VS gtkmmRead-only mirror of https://gitlab.gnome.org/GNOME/gtkmm
Refureku2.9 6.5 GTK+ VS RefurekuCross-platform C++17 Runtime Reflection Library
Vaca2.3 0.0 GTK+ VS VacaC++ Win32 wrapper to develop GUI apps
ncurses2.0 0.0 GTK+ VS ncursessnapshots of ncurses - see http://invisible-island.net/ncurses/ncurses.faq.html (no pull requests are accepted)
newt1.8 0.0 GTK+ VS newtMirror of https://pagure.io/newt.git
Clip Library1.5 1.0 L3 GTK+ VS Clip LibraryCross-platform C++ library to copy/paste clipboard content
QCustomPlot1.4 - GTK+ VS QCustomPlotQt plotting widget without further dependencies. [GPLv3]
fox-toolkit1.3 0.0 GTK+ VS fox-toolkitUnofficial Zenotech specific mirror of fox-toolkit; please refer to upstream site for latest version
sling1.3 0.0 GTK+ VS slingLightweight C++ Signals and Slots implementation
Ultra App Kit1.2 9.6 GTK+ VS Ultra App KitDocumentation contents for Ultra Engine
NotificationManager1.1 1.8 GTK+ VS NotificationManagerA thread-safe, easy-to-use, utility for sending and receiving notifications. It allows you to decouple different modules of your application.
WTF1.1 0.0 GTK+ VS WTFWindows Template Framework
static_string1.0 1.6 GTK+ VS static_stringExperimental compile-time string manipulation C++17 library
SUTFCPP- - GTK+ VS SUTFCPPSimple UTF library for C++
QwtPlot3DA feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
QwtQt Widgets for Technical Applications. [Own based on LGPL]
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of GTK+ or a related project?
GTK — The GTK toolkit
GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites.
GTK is a free and open-source software project. The licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
GTK is hosted by the GNOME project (thanks!) and used by a wide variety of applications and projects.
The official download location
The official web site
The official developers blog
Nightly documentation can be found at
- Gtk: https://gnome.pages.gitlab.gnome.org/gtk/gtk4/
- Gdk: https://gnome.pages.gitlab.gnome.org/gtk/gdk4/
- Gsk: https://gnome.pages.gitlab.gnome.org/gtk/gsk4/
Nightly flatpaks of our demos can be installed from the GNOME Nightly repository:
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install gnome-nightly org.gtk.Demo4
flatpak install gnome-nightly org.gtk.WidgetFactory4
flatpak install gnome-nightly org.gtk.IconBrowser4
Building and installing
In order to build GTK you will need:
You will also need various dependencies, based on the platform you are building for:
If you are building the X11 backend, you will also need:
- Xlib, and the following X extensions:
If you are building the Wayland backend, you will also need:
Once you have all the necessary dependencies, you can build GTK by using Meson:
$ meson _build . $ cd _build $ ninja
You can run the test suite using:
$ meson test
And, finally, you can install GTK using:
$ sudo ninja install
Complete information about installing GTK and related libraries can be found in the file:
Default branch renamed to
The default development branch of GTK has been renamed to
To update your local checkout, use:
git checkout master git branch -m master main git fetch git branch --unset-upstream git branch -u origin/main git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
How to report bugs
Bugs should be reported on the issues page.
In the bug report please include:
Information about your system. For instance:
- which version of GTK you are using
- what operating system and version
- for Linux, which distribution
- if you built GTK, the list of options used to configure the build
And anything else you think is relevant.
- How to reproduce the bug.
If you can reproduce it with one of the demo applications that are built in the demos/ subdirectory, on one of the test programs that are built in the tests/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded.
If the bug was a crash, the exact text that was printed out when the crash occurred.
Further information such as stack traces may be useful, but is not necessary.
Contributing to GTK
Please, follow the [contribution guide](./CONTRIBUTING.md) to know how to start contributing to GTK.
If you want to support GTK financially, please consider donating to the GNOME project, which runs the infrastructure hosting GTK.
The release notes for GTK are part of the migration guide in the API reference. See:
GTK is released under the terms of the GNU Lesser General Public License, version 2.1 or, at your option, any later version, as published by the Free Software Foundation.
Please, see the [
COPYING](./COPYING) file for further information.
GTK includes a small number of source files under the Apache license:
- A fork of the roaring bitmaps implementation in [gtk/roaring](./gtk/roaring)
- An adaptation of timsort from python in [gtk/timsort](./gtk/timsort)
*Note that all licence references and agreements mentioned in the GTK+ README section above are relevant to that project's source code only.