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.
Related
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
I am interested in GUI application development, and when i search for it i found the only way ahead of me is to master in frameworks like qt, wxWidgets, gtk+, win32 etc. Win32 is ofcourse a native way, but it only run on win pc.
Why c++ standard native libraries does not provide APIs for GUI development?, just like like java.
It has every functions of its own to make a fully featured GUI app..?
Most platforms such as Windows, Mac OSX, Unix, Unix derivatives like Linux, and so forth, provide libraries of callable routines or objects which support GUI development on those platforms.
It might be nice to have a universal GUI library, but that would likely limit its features and aesthetics to a particular format and architecture which would necessarily have to exclude some of the most distinctive and useful features of the platform on which such applications would be used.
So one needs to select a platform for development and anticipate parallel development on alternative platforms. Sometimes aesthetics drives these decisions and sometimes capabilities and performance drives them.
Welcome to an endless adventure, good friend.
No.
GUI require graphics. C++ does not require a graphical environment. Unless you implement an OS yourself with graphics drivers etc in C++ you will not be able to do that.
And if you do, you will have re-invented the wheel (Win32).
Edit: As for java it is practically an OS.
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.
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.
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.
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.)