There are some times that I make something and the terminal isn’t enough. I want to make it user-friendly and add buttons and dropdowns and stuff. I mainly write C, so I want a well-known and good GUI library for C. I have tried learning Qt but the documentation was awful and all the examples were for C++ or Python. I also am aware about libraries like imgui but it’s more for debugging UIs I think and not for normal applications that end users use.

I also would like the library to be platform-agnostic, or at least just work with Linux because that’s what I am using.

If you also code in C, what do you use to make GUIs? What do you suggest me to use?

Thanks in advance.

Also, if anyone suggests Electron or anything involving a browser, I will find them and remove one electron from each atom of theirs, turning them into smoke.

  • who@feddit.org
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    14 hours ago

    I’ve heard GTK programs don’t look great on Windows,

    They don’t look great anywhere, not even on Linux, unless you happen to be using a Gtk-based desktop.

    However, Gtk does have one thing going for it: the API is native to C, so it is easier to work with in that language (and easier to bind to other languages) than something like Qt would be.

      • who@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        19 hours ago

        Some Linux users will have a theme for Gtk apps that make them look somewhat like their desktop’s native apps, but they often still look out of place. And Gtk has long had a habit of breaking those themes in minor version updates. And modern Gtk pushes client-side window decorations, which completely defeat window manager functionality that is native to non-Gtk desktops, making the app not only look terrible but also not behave correctly. And even if a perfectly matched theme existed (I have never seen one), the inputs for common controls won’t be the same as native ones, so the app won’t operate correctly.

        In other words, nope, what you are referring to does not solve the problem.