{"id":34529936,"url":"https://github.com/rcalixte/libqt6c-demo","last_synced_at":"2026-04-18T21:35:21.296Z","repository":{"id":328710750,"uuid":"1107245637","full_name":"rcalixte/libqt6c-demo","owner":"rcalixte","description":"Qt 6 demo for C","archived":false,"fork":false,"pushed_at":"2026-04-15T21:03:58.000Z","size":629,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-15T23:14:04.268Z","etag":null,"topics":["c","qt","qt6"],"latest_commit_sha":null,"homepage":"https://rcalixte.github.io/libqt6c","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcalixte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-30T21:08:28.000Z","updated_at":"2026-04-15T21:04:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rcalixte/libqt6c-demo","commit_stats":null,"previous_names":["rcalixte/libqt6c-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rcalixte/libqt6c-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcalixte%2Flibqt6c-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcalixte%2Flibqt6c-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcalixte%2Flibqt6c-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcalixte%2Flibqt6c-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcalixte","download_url":"https://codeload.github.com/rcalixte/libqt6c-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcalixte%2Flibqt6c-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31986323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","qt","qt6"],"created_at":"2025-12-24T05:28:15.607Z","updated_at":"2026-04-18T21:35:21.278Z","avatar_url":"https://github.com/rcalixte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"###\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg alt=\"libqt6c-demo\" src=\"assets/libqt6c-demo.png\" height=\"128px;\" /\u003e\n\n[![MIT License](https://img.shields.io/badge/License-MIT-blue)](https://github.com/rcalixte/libqt6c-demo/blob/master/LICENSE)\n[![Static Badge](https://img.shields.io/badge/v0.16%20(stable)-fdc009?logo=zig\u0026logoColor=f7a41d\u0026label=Zig)](https://ziglang.org/download/)\n\n[![Builds](https://github.com/rcalixte/libqt6c-demo/actions/workflows/builds.yml/badge.svg?branch=master)](https://github.com/rcalixte/libqt6c-demo/actions/workflows/builds.yml)\n\u003c/div\u003e\n\n---\n\nDemo application using the [MIT-licensed Qt 6 bindings for C](https://github.com/rcalixte/libqt6c)\n\nThis demo application can be thought of as a simpler instructive template for using the main library than the [examples](https://github.com/rcalixte/libqt6c-examples). Please try out the demo application and start a [discussion](https://github.com/rcalixte/libqt6c/discussions) if you have any questions or issues relevant to this demo application.\n\n---\n\n### TABLE OF CONTENTS\n\n- [License](#license)\n- [Building](#building)\n  - [FreeBSD (native)](#freebsd-native)\n  - [Linux (native)](#linux-native)\n    - [Debian-based distributions](#debian-based-distributions)\n    - [Fedora-based distributions](#fedora-based-distributions)\n    - [Arch-based distributions](#arch-based-distributions)\n    - [openSUSE-based distributions](#opensuse-based-distributions)\n  - [macOS (native)](#macos-native)\n  - [Windows (native)](#windows-native)\n- [Screenshots](#screenshots)\n- [FAQ](#faq)\n  - [Q1. How long does it take to compile the demo application?](#q1-how-long-does-it-take-to-compile-the-demo-application)\n  - [Q2. What build modes are supported by the build system used by the demo application?](#q2-what-build-modes-are-supported-by-the-build-system-used-by-the-demo-application)\n  - [Q3. Can I use another build system to compile the demo application?](#q3-can-i-use-another-build-system-to-compile-the-demo-application)\n- [Special Thanks](#special-thanks)\n\nLicense\n-------\n\nThe demo application within `libqt6c-demo` is licensed under the MIT license.\n\nBuilding\n--------\n\n---\n\n### FreeBSD (native)\n\n```bash\nsudo pkg install qt6-base\n```\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately if the latest stable version is not available in the default repositories.\n\n---\n\n### Linux (native)\n\n#### Debian-based distributions\n\n```bash\nsudo apt install gcc libstdc++-14-dev-$(dpkg --print-architecture)-cross qt6-base-dev\n```\n\n\u003e [!NOTE]\n\u003e The `zig` package must be downloaded and installed separately.\n\n#### Fedora-based distributions\n\n```bash\nsudo dnf install sysroot-$(uname -m)-fc$(lsb_release -rs)-glibc gcc libstdc++-devel qt6-qtbase-devel\n```\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately if the latest stable version is not available in the default repositories.\n\n#### Arch-based distributions\n\n```bash\nsudo pacman -S gcc qt6-base\n```\n\nUsers of Arch-based distributions need to __make sure that all packages are up-to-date__ and then run the following commands:\n\n```bash\nsudo mkdir -v /usr/$(uname -m)-pc-linux-gnu \u0026\u0026 sudo cp -pr /usr/include /usr/$(uname -m)-pc-linux-gnu/\n```\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately if the latest stable version is not available in the default repositories.\n\n#### openSUSE-based distributions\n\n```bash\nsudo zypper install qt6-base-devel\n```\n\nUsers of openSUSE-based distributions need to __make sure that all packages are up-to-date__ and then run the following commands:\n\n```bash\nsudo cp -pr /usr/include/* /usr/$(uname -m)-suse-linux/include/\n```\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately as the version in the default repositories is too unstable for usage.\n\n---\n\n### macOS (native)\n\nTo install the Qt 6 dependency using [Homebrew](https://brew.sh/):\n\n```bash\nbrew install qt6\n```\n\n\u003e [!IMPORTANT]\n\u003e In recent versions of Qt 6, the symlinks are not correctly created at the time of installation and must be created manually for each framework. For the demo application, the following commands can be used to create the symlinks:\n\u003e\n\u003e ```bash\n\u003e ln -s /opt/homebrew/lib/QtCore.framework/Headers /opt/homebrew/include/QtCore\n\u003e ln -s /opt/homebrew/lib/QtGui.framework/Headers /opt/homebrew/include/QtGui\n\u003e ln -s /opt/homebrew/lib/QtWidgets.framework/Headers /opt/homebrew/include/QtWidgets\n\u003e ```\n\nThe official Qt installer is also supported but will require manually creating the symlinks as above and using the `extra-paths` option described below, using the root of the include directory as the path value.\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately if the latest stable version is not available via Homebrew.\n\n---\n\n### Windows (native)\n\nFor Windows, use the official Qt installer and install a Qt version built with LLVM-MinGW.\n\n\u003e [!NOTE]\n\u003e The `zig` package will need to be downloaded and installed separately.\n\n---\n\nOnce the required packages are installed, the demo application can be built from the root of the repository:\n\n```bash\nzig build\n```\n\nTo build and run the demo application:\n\n```bash\nzig build run\n```\n\nIn the event that another system library path is needed e.g. a different Qt installation path, the `extra-paths` option supports this use case:\n\n```bash\nzig build -Dextra-paths=\"C:/Qt/6/llvm-mingw_64\"\n```\n\nor\n\n```bash\nzig build -Dextra-paths={\"/opt/qt6\",\"/opt/lib/qt6\"}\n```\n\nFor Windows hosts, there is an additional option to specify the Qt installation directory. This is only required if passing in an alternate extra library path meant to override the default Qt library path:\n\n```bash\nzig build -Dextra-paths=\"C:/Qt/6/llvm-mingw_64\" -DQTDIR=\"C:/Qt/6/llvm-mingw_64\"\n```\n\nThe demo application can be installed to the system in a non-default location by adding the `--prefix-exe-dir` option to the build command:\n\n```bash\nsudo zig build --prefix-exe-dir /usr/local/bin # creates /usr/local/bin/mdoutliner\n```\n\nThe source code for the demo application can be found in the `src` directory of the repository.\n\nScreenshots\n-----------\n\n\u003ctable align=\"center\"\u003e\n\n|     ![cachy_kde](assets/cachy_kde.png)     |\n| :----------------------------------------: |\n|               CachyOS + KDE                |\n|    ![fedora_kde](assets/fedora_kde.png)    |\n|                Fedora + KDE                |\n|  ![freebsd_xfce](assets/freebsd_xfce.png)  |\n|               FreeBSD + Xfce               |\n| ![mint_cinnamon](assets/mint_cinnamon.png) |\n|           Linux Mint + Cinnamon            |\n|         ![macos](assets/macos.png)         |\n|                   macOS                    |\n|       ![windows](assets/windows.png)       |\n|                  Windows                   |\n\n\u003c/table\u003e\n\nFAQ\n---\n\n### Q1. How long does it take to compile the demo application?\n\nThe first compilation should take less than a minute, far less on more recent or capable hardware.\n\n### Q2. What build modes are supported by the build system used by the demo application?\n\nCurrently, `Debug`, `ReleaseFast`, `ReleaseSafe`, and `ReleaseSmall` are supported. The default build mode is `Debug`. To change the build mode:\n\n```bash\nzig build -Doptimize=ReleaseSmall\n```\n\nor\n\n```bash\nzig build --release=small\n```\n\n### Q3. Can I use another build system to compile the demo application?\n\nAssuming the main library has been properly compiled and the `include` directory of headers is available, the demo application can be built with any build system that supports C. A sample compilation using `gcc` run from the root of the repository on a Linux machine:\n\n```bash\ngcc src/mdoutliner/main.c -o mdoutliner -march=native -I/path/to/libqtc/include -L/path/to/libqtc/compiled/lib -lqaction -lqapplication -lqboxlayout -lqcoreapplication -lqfiledialog -lqguiapplication -lqicon -lqkeysequence -lqlayout -lqlayoutitem -lqlistwidget -lqlocale -lqmainwindow -lqmenu -lqmenubar -lqobject -lqpaintdevice -lqresource -lqsplitter -lqtabwidget -lqtextcursor -lqtextdocument -lqtextedit -lqtextobject -lqtranslator -lqvariant -lqwidget -lqframe -lqabstractscrollarea -lqdialog -lqabstractitemview -lqlistview -lQt6Widgets -lQt6Core -lQt6Gui -lstdc++\n```\n\nThis should produce a binary executable named `mdoutliner` that can be run from the command line. The compilation process should complete without any errors or warnings being displayed while taking less than a few seconds to complete.\n\nSpecial Thanks\n--------------\n\n- [@mappu](https://github.com/mappu) for the [MIQT](https://github.com/mappu/miqt) bindings that provided the phenomenal foundation for this project\n\n- [@arnetheduck](https://github.com/arnetheduck) for proving the value of collaboration on the back-end of the library while working across different target languages\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcalixte%2Flibqt6c-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcalixte%2Flibqt6c-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcalixte%2Flibqt6c-demo/lists"}