Cross-platform GUI toolkit in C or C++? [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm looking to write some simple GUI applications in C or C++, and am stuck for choice between the cross-platform toolkits. Keep in mind that I am developing in Ubuntu, preferably without an IDE, and preferably with good cross-platform support.
What are the pros and cons of some of these toolkits? Which have you had the best experience with?
So far, I've looked into Qt, GTK+ and wxWidgets.

I have experience with Qt and wxWidgets. Both are OK for simple GUI applications, but Qt looks more professional. I like that it keeps GUI definition code in separate files (like in .NET WinForms designer), and it is not mixed with our own code. Qt Creator is good IDE which may be used also for developing non-Qt C/C++ applications.
In Ubuntu, both Qt and wxWidgets are available in the repository, and can be installed by standard way, without building the source.

I have a friend that is programming 3D Game Engine and he is using and recommending wxWidgets. On the other hand I have some friends developing applications for Nokia Phones, and they are using QT, and recommending it too. The answer is - choose what fits you best. ;]

since both Qt and wxWidgets have been recommended, I have only one more I know enough to recommend: Clutter. It's more of a widget toolkit, rendered in OpenGL.

Related

How to program frames in C++ [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
OK, C++ noob here asking a very nooby question (sorry) but whenever I write my basic programs (helloworld etc.) they always appear in a command prompt window. I want to make proper windows like in Word and other programs. I know it is possible to do this because of all the programs I use every day. But how do I do this in C++? For all the Java veterans out there, I want it to be like a JFrame, but the C++ equivalent.
C++ doesn't have a UI library out of the box, so you need to choose one.
Popular options would be MFC (under Windows/Visual C++) or Qt (with quite a lot additional libraries and features, working on many platforms).
Since you mention Word, it appears that you're on the Windows platform.
Then consider starting with e.g. the Lessons in Windows API Programming (C++) hands-on tutorial.
There are also a great many other tutorials on the net, and books to buy. I just picked the one that I was most familiar with, as the author. Regarding books, the classic book on programming the Windows API is Petzold's "Windows Programming", but I seem to recall that the latest version is for Windows 8 and in C# (earlier version were C/C++).
The tutorial leads you through how to get started with creating window programs using the Windows API (Application Program Interface) direcetly.
This is fairly language independent, but the language used in the tutorial is C++. C++ doesn't have standard library support for GUI stuff. The idea in C++ is that you're free to use whatever third party libraries that you want, or create them, such as the Windows API.
This is highly platform dependent. You can use a GUI cross-platform library, like QT, or use native mechanisms. Under Windows you can use the WinAPI and MFC.

worth the time investment to learn Qt (c++)? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 11 months ago.
Improve this question
i already know java, c++ (no one framework for GUI development) and little of c# (winforms for gui development) but i'm thinking to ivest my free time to learn Qt, what do you recommend me? has Qt a good future or not?
I think it's worth it. We used Qt recently because it allowed us to make a cross-platform GUI that looks good on Linux, Windows, and Mac. It's kind of a tough learning curve to figure out how to use the QLayouts correctly, but after you do your GUI will look great on many different platforms, with many different font sizes, and with many different window sizes. I like how Qt allows you to make applications that use the native widgets with the native look and feel. Applications built with Qt will look like they belong no matter what platform they are running on. Another great feature is that the Qt framework is small enough that you can just include the Qt DLL files in your application's binary directory, so it simplifies the installation process for your application and makes life easier for everyone (no VMs to install, no 600 MB downloads).
I'd recommend using Qt directly from C++. There are wrappers for it on many languages, but it's hard to believe those wrappers will support every feature and allow you to subclass Qt classes.
You can kind of make cross-platform GUIs with C# WinForms, using Mono on Linux and Mac. But Mono's WinForms is not maintained, the results look really bad, and there are some crippling bugs on macOS.
I can't say enough good things about Qt. Their documentation is bar-none. I've never seen more examples and better documentation that with Qt. It's the standard by which I judge all other frameworks. What's more, the Cross-Platform capabilities are amazing. You get native looking apps, all for free. I'd say go for it.

Looking for a C++ GUI library in which you can design fancy GUIs (like for games), [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Looking for a C++ GUI library in which you can design fancy GUIs (like for games),
something in which you can make something beautiful (rounded buttons with rollover effects, embed beautiful background graphics, cool and colorful scrollbars and progress bars, etc.)
It needs to be open source & allowed to be used in proprietary software. Should be also cross-platform, and shouldn´t need to be linked to thousands of libraries or days to get the compiler configured to run even for small samples.
I hope I´m not asking too much
I tried CEGUI and I wasn´t convinced — it was tricky and I compiled the samples but they didn´t run on some computers.
QuickGUI seems to need OGRE (tell me if I´m wrong), which I don´t want to learn now.
Navi needs GeckoRuntime, which ist too big for my project!
wxWidgets doesn´t seem to be focused on design but on functionality (tell me if I´m wrong)
Try GTK+ or Qt, although it's more of a framework than a library. Both are widely used GUI toolkits. Hope that helps.
I believe libRocket is designed with game user interfaces in mind.
http://www.librocket.com/
Its based on HTML/CSS which, in my opinion, is an excellent way to define a user interface.
You might want to take a look at Qt. You can probably do much of what you are asking for using Qt. More specifically take a look at these features in Qt
CSS Customizations of Qt Widgets
QtOpenGL for 3D graphics ( if you need 3D graphics and need to embed Qt Widgets into a 3D environment).
QGraphicsView for combining multiple widgets in different ways
When you download Qt, it comes with a set of demos. You can take a look at these demos and other examples and re-use the concepts of the parts you like.
I have worked with Qt quite a bit and I can confidently say that you can achieve just about anything you can imagine.
GuiChan? http://guichan.sourceforge.net/wiki/index.php/Features
I haven't personally used it yet, but will intend to use it on a game I'm currently working on.
Scaleform is a commerical solution.
http://www.scaleform.com/products/clik
Many people tell me good things about it.

Looking for an application GUI library for C++ [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm thinking about writing a very simple paint program. I would like a more advanced method of inputting data into my program like colors, thickness of the brush, etc. I would like to use a GUI library so I can program buttons and menus to make input easier.
Any suggestions?
(I'm running Visual C++ 2005 SP1)
Qt is a pretty solid GUI application framework. It is cross-platform, well documented, supported, and free.
wxWidgets is a cross-platform, open source GUI library that has some nice graphics features.
Does GTK+ not suit your needs? It has a lot of advanced controls for handling colour input (being originally design for GIMP). gtkmm is:
the official C++ interface for the
popular GUI library GTK+. Highlights
include typesafe callbacks, and a
comprehensive set of widgets that are
easily extensible via inheritance. You
can create user interfaces either in
code or with the Glade User Interface
designer, using libglademm. There's
extensive documentation, including API
reference and a tutorial.
Qt is also a possibility. Both will allow you to write [mostly] platform independent code.
Why not use either ATL or MFC, as they're both supplied with VS2005 anyway...
Another option would be WTL, which comes recommended by some former colleagues of mine.
A few of your options:
Win32 API
Qt
.NET framework (using C++/CLI)
wxWidgets
My usual choice: Win32 API
My recommendation for you: Qt
EDIT: Actually a simple paint program sounds very doable using only Win32 API and GDI+. If you feel brave enough, then you may want to give that a try. (I tend to be kind of biased to lightweight solutions.)

Linux GUI development [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I have a large GUI project that I'd like to port to Linux.
What is the most recommended framework to utilize for GUI programming in Linux? Are Frameworks such as KDE / Gnome usable for this objective Or is better to use something more generic other than X?
I feel like if I chose one of Gnome or KDE, I'm closing the market out for a chunk of the Linux market who have chosen one over the other. (Yes I know there is overlap)
Is there a better way? Or would I have to create 2 complete GUI apps to have near 100% coverage?
It's not necessary to have a cross-platform solution that will also work on Win32.
Your best bet may be to port it to a cross-platform widget library such as wxWidgets, which would give you portability to any platform wxWidgets supports.
It's also important to make the distinction between Gnome libraries and GTK, and likewise KDE libraries and Qt. If you write the code to use GTK or Qt, it should work fine for users of any desktop environment, including less popular ones like XFCE. If you use other Gnome or KDE-specific libraries to do non-widget-related tasks, your app would be less portable between desktop environments.
I recommend wxWidgets or Qt. They are both mature, well-structured and cross-platform, with decent documentation and sample source code.
Gnome apps work on KDE desktops and vice versa; you won't be locking anyone out. As far as toolkits go, it's fairly subjective. All of the toolkits are fairly cross-platform. If you're not open source, then GTK+ would be the cheaper option, as Qt is only free for open source use, whereas GTK+ is LGPL.
Have you thought of using Mono? Programs like Paint.NET work great under Linux & Windows.