multiplatform IDE for developing graphical interfaces in C++ - c++

I want to start making graphical user interfaces in C++ in some IDE, easy to learn and have enough documentation and examples. Besides being multiplatform, ie the final application can be run on both Linux and Windows
Some suggestions or experiences?

I would recommend Qt Creator.
The Qt libraries are multiplatform, cover a wide range of features and are well documented; the IDE too runs almost everywhere, is really easy to set up and is very well integrated with the library.
Other open source alternatives may be the wxWidgets with e.g. CodeBlocks, but in my opinion they aren't as good (in terms of completeness and documentation), and you don't have such a good integration with the IDE (also, in my experience setting up wxWidgets development on Windows needs some work).

You can use Eclipse which is open source and works well on Linux/Windows . There is descent documentation available as well..

Related

c++ gui window cross platform

I would like to make c++ that will work both on Linux and windows as I understand if I use the win32 template in visual studio then it will only work on windows is there something built into c++ like java's jframe that I can use. Also I would like to use any external library at this time.
Here are some cross platform alternatives QT, wxWidgets, Ultimate++. I have used QT, it is intuitive with a huge collection of tools to use in your code. The others are also popular but I have never used them.
I make used of wxWidgets due to it's cross platform and even cross architecture, native look on the OS where it appear. Binary application yields by wxWidgets is small enough thus make it possible to linking statically as portable application. Qt produce huge binary if linked statically (and may be violate qt licensing scheme).
Another reason are licensing flexibly, well documentation and supported by huge community arround the world. wx is considered as mature framework since it first release about 20yrs ago. It's use standard C++ syntax and preprocessor that will make you easily switch from plain C or C++. Complete library are available ranging from appeal window GUI, string, network, stream, webview, xml, and wx is playing very well with 3rd party library as such database SOCI, Asio, etc ....
You may try start to code with wxWidgets easily using Eclipse-IDE and wxFormBuilder as GUI designer. Plese check my experience for ease setup it's IDE+Toolchain. This wx installer can be used do develop, test and run wx application on Linux desktop, and then deploy the binary on Raspberry Pi is available for another board target beside Linux x86_64.
http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html
There is a cross-platform application & UI development framework called Qt. I think it meets your requirements. Click here for more info.
There is a long list of both active and dead cross-platform C++ UI libraries here: https://philippegroarke.com/posts/2018/c++_ui_solutions/

Gtk3 developing on windows

I am new (relatively) to C++ and to SO.
Having stretched the creativity of console applications to the limit, my very rabid mind wants to know how to code GUIs now. I did some research, decided to use GTK rather than Qt because of having freedom of choice, there being no strings attached and something about slow internet and having to download some 0.6GB were I to go with Qt.
It has been a brutal 48 hours trying to build 'Hello World' on Gtk. This is me throwing a tantrum. I'm using Visual Studio 2010. Perhaps this is the source of all my woes. It seems Gtk is meant for C and not C++. After solving issues with header files includes and a certain notorious glibconfig.h missing (which I downloaded from the internet only to find, to my horror,that it is supposed to be a generated file), the compiler threw syntax errors,especially in one gatomic.h.
I suspect 10 errors will come up for every one I manage to solve. This is where you come in. Do you use Gtk to develop c++? If not, why so? What would you recommend instead? Do you use Gtk on windows? How is that possible? Please give details.
Is it possible to make cross-platform apps that use C++ code and a Python/VB GUI?
Your answer will be sincerely appreciated.
First off, a general note: Gtk being mainly developed as a toolkit for Gnome, I think it is fair to say that the main focus is high quality on Linux while other platforms are somewhat second-class citizens. This is probably most visible by looking at the integration with the native look and feel of Windows and MacOS. If you are looking for a toolkit which behaves equally well on all major platforms, I'd recommend you reconsidered Qt.
As far as your more specific questions are concerned:
C/C++
Gtk is written in C, and consequently has a C API. If you are looking for a C++ API, look at the Gtkmm bindings. Note that you can also use the C API in a C++ application.
glibconfig.h
I don't know whether you tried compiling Gtk yourself, but the easiest way to get Gtk3 for windows is by downloading the precompiled all-in-one bundle from http://www.gtk.org/download/win32.php (which includes the glibconfig.h you are missing).
When and how to use Gtk and with what language
As pointed out above, the primary users oft Gtk are people who develop applications for the Gnome desktop environment. Most cross-platform applications nowadays however use Qt since the quality on Windows and MacOS is higher compared to Gtk on those platforms.
Concerning what langauge to use, a strength of Gtk is that there exists bindings for many languages (including C++ and Python), so you are certainly not confined to C.
When developing with C++, something that I personally like about Gtkmm is that it uses the standard library, as opposed to Qt which has it's own implementations for data structures etc (the reason being that Qt predates the times when the STL was generally available and usable on all main platforms).
How to use Gtk: contrary to Qt which has the excellent Qt Creator, Gtk is somewhat lacking a specifically designed IDE for easy development. The closes you'll get is using Glade for interface design and a text editor or IDE of your choice for the coding, but that choice will differ depending on the platform you are on. Clearly, as you probably noticed, integrating Gtk into the environment of choice usually requires some work (and also some more technical knowledge). So again, if you are looking for an easy to set-up and use environment for developing GUI applications, I'd just go with Qt and Qt Creator.
Cross-Platform apps
First off, Visual Basic is not cross-platform. But generally speaking, there are plenty of possibilities for doing cross-application development, using various languages.
I've had to get a gtk3 project working on windows a few months ago, when gtk3 just came out for windows. I've had problems compiling it under Visual Studio as well, and posted a question here, specifically this one.
Here's how I got it working on windows:
Download the all-in-one bundle for Windows from gtk.org
Install, etc, set up include/link dirs within the project. (personally, I dumped gtk's folders in the project folder, pointed at "include" as an include dir and "lib" as a link dir, then proceeded to move any files/folders the compiler cannot find around to the root of "include" )
If not set up automatically, add include and link dirs as necessary until the compiler finds all the files.
If using MinGW to compile, it will succeed at that point.
If using Visual Studio, you have to modify gtk headers as described in the gtk mailing list:
In gutils.h lines 82 and 122, and in gstring.h line 129, change
"static inline" to "static __inline".
Blockquote
Note that the modification does not impact MinGW's ability to compile.
I have successfully compiled my gtk3 project on both windows (with either Visual Studio or Code::Blocks) and linux without writing platform-specific code that way. Just don't forget to include the required runtime dlls with the program when you ship it.

Portable C++ IDE [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I want a portable C++ IDE for general development, and too to develop basic Windows GUI applications.
In my research, I've found this (with latest version date):
CodeLite IDE (2010-04-02)
Ultimate++ (2010-03-16)
Qt Creator (2010-02-01)
NetBeans (2009-12-10)
Code::Blocks (2008-02-28)
Bloodshed Dev-C++ (2005-02-22)
But I don't know if some these IDE's supports Windows GUI development (or Cross Platform GUI development) or if can be portable (NetBeans can be portable).
EDIT: Reading the replies and doing more research, I'm near to choose between NetBeans or Qt Creator. But Qt Creator is 287mb (big for portable development). So sad looks that NetBeans, even being small (c++ is near to 30mb) needs Qt library for GUI (278mb)...
Qt Creator is a good choice if you want to code cross platform GUI programs.
Qt is an excellent cross platform GUI library.
The bash shell (and it's tools) + vim + cmake + mercurial = love. Bash is available on all popular platforms, even windows
p.s., I forgot gdb + ddd.
The IDEs you named are all cross-platform and available on Windows, Mac OS X, and Linux. That said, you only really need to make your code cross-platform (use Boost and Qt to do that). I personally use Xcode on Mac OS X, GEdit or Anjuta or KDevelop on Linux, and Code::Blocks on Windows. You might also be interested in my C++ Application Project Template and C++ Library Project Template, which provide a portable cross-platform build using the CMake build system, and which uses both Boost and Qt; the application project template already has code to create a "hello world" GUI if you use the flag "--gui".
I should also point out that CMake is capable of generating project files for a wide variety of IDEs, so an advantage of a CMake build is that you can generate makefiles (the default), but you can also generate a Visual Studio project (Windows), a KDevelop project (Linux), or an Xcode project (OS X) from just the one project description file, allowing one to use the native IDE for that particular development platform.
You can make a portable NetBeans, as well as Code::Blocks, Geany, Dev-C++, or Eclipse.
Any of the above should be able to do Windows GUI or cross-platform GUI development, just make sure you have a copy of all necessary libraries on your flash drive. If you use portable Cygwin on the flash drive, you can include gcc (so your IDE has a compiler as well) and the cygwin versions of a variety of UI libraries (gtk, FLTK, wxwidgets, qt, etc etc).
An alternate route that I have seen some people take is to load up a Linux installation in a virtual machine, then carry that around on the flash drive along with something like Portable VirtualBox. I would recommend copying it to the hard drive first, the performance would be terrible running it straight off the flash drive.
Have you considered Vim. Not exactly an IDE but you could easily put versions on one USB stick to allow you to run anywhere.
For some things I like Eclipse but it is only portable in your sense if Java is installed on the host machine. The other big problem with Eclipse is that it is fairly machine demanding and in my opinion requires a fast SMP machine to work well. Frankly though I don't use Eclipse for any of the "C" languages right now.
A slightly tougher choice might be EMACS again using the same approach as with Vim. That is putting multiple copies for your different target machines on a USB stick.
In the end I have to second something else suggested, that is the best portable IDE is a laptop. For example you can have several very good IDEs installed on a Mac and easily transfer files to a target machine. Being Unix it is fairly easy to install the GCC or LLVM of your choice even cross compilers. The big problem with a USB dongle approach is that you never can be sure of having everything you need there.
Xemacs. If you want something that you can keep on a flash drive with a ton of other tools. It isn't full features, but sure is a step up for writing software than vim.
Well, it doesn't have a portable version, but as a general and multi-platform IDE, I would definitely go with Komodo Edit. I love the autocompletion and call-tips features. They boosted my coding speed and productivity by 1000x. I know I sound like an ad, but don't worry, it's my most sincere opinion.
If you want cross-platform development, I agree with whoever mentions Qt. It's a really great, reliable (depends on your requirements, of course) and flexible cross-platform framework.
Good luck!

want to make a complex c++ gui simply

I want to make a nice simple gui using c++. which have drag and drop capabilities, must be light weight. Im thinking of a gui like utorrent client gui.Its light weight and simple.
please give me information about most easy to use libraries / ide /plugin (on windows platform may be good).
Either use QT or wxWidgets. Both are free to use, but QT uses more advanced features of C++ and is used slightly more than wxWidgets (From what I have seen) and has the backing of Nokia.
Both have various gui editors. QT has a QT Creator and there is a list of tools on the wxWiki, which includes a lot of open source RAD gui designers.
I have experience of using wxWidgets in both C++ and Python, and would recommend wxFormBuilder as a GUI designer.
The downside to both is they feel the need to use their own string classes etc which duplicates the functionality of the stl. From what I understand is that this is because when the projects were started there wasn't a standard.
Qt seems to be the most natural choice for your requirements. It has a complete SDK which includes a GUI builder (Qt Designer), an IDE (Qt Creator), internationalization tools and comprehensive documentation. It can also be integrated with such IDEs as Eclipse and MSVS.
In addition to GUI libraries, it has lots of utility classes including containers, facilities for working with file system, processes, XML-data and databases, etc. So you can write the code only once and it will work on every platform supported by Qt, you'll just need to recompile it.
If it seems a little too stodgy at first glance, you may rebuild the Qt libraries from source to include only those modules you actually need.
P.S. I wouldn't suggest using MFC. It's just doesn't worth the effort when you have a more friendly and easy-to-grasp choice.
I would go with QT.
Some of the PROs:
Free as in "free beer"
Free as in "free speech"
Multiplatform (Windows, Linux, Mac OS)
Natively written in C++
Easy to use
In my opinion, some of the CONs:
If you are only targeting Windows platform, you might get better looking (and faster?) UIs with MFC (Microsoft Foundation Classes)
Yet another vote for Qt. I am using it since about 8 years for now (EDA branch) and it works out very good.

Which IDE for C++ software can I use for targeting Windows, Linux and OSX?

I was reading today question on IDEs fo C++, and there are very good ones like Netbeans.
My question is about creating a software in C++ on Windows Environment, but let users install and run my software also on Linux and OSX.
Does netbeans has a compiler to do the job, or is there any good IDE which has a compiler for targeting my c++ code to these other environments?
thank you
QtCreator. It's awesome, slick and everything.
While it is not as feature rich as some competitors, it does many things just right that others don't.
I would say it is the one truly cross-platform IDE that is competitive to single-platform solutions. And it comes with tight integration of a very powerful and clean cross-platform toolkit. Something that you need for most cross-platform applications by itself.
I use Eclipse CDT and have had some degree of success. But I'm a Java programmer, so it's what I'm used to. It's worth checking out, and the extensions are quite cool.
Many people like Code::Blocks and it is cross-platform, with integrated debugging, code completion, etc. Qt Creator is also good and at least still very minimalistic.
Without a doubt VisualStudio with gnu make.
I've found Visual Studio to have the best IDE for C++. In addition, it's debugger and the way it handles multi-threaded applications is excellent.
And you can tweak the properties for your project to use different compilers and compiler flags of your choice, so it can build to any target.
You're talking about cross-compiling as GMan said, that's a compiler job, not IDE's and itu's kind of hard to make C++ software that runs well on Linux/Windows/MacOSX, C++ isn't a cross plataform language beacuse of its ABI, so you should try to use C++ standart code.
If you're making a consloe application there's no much problem just be care not to use system interface, but if you're planning to do some kind of graphics app then C++ it not the better choice for your purpose. Try some design that split the view from the controller/model of the app.
You can use QtCreator or NetBeans. First on C++ secord on Java. Both use MinGW g++.
Just a thought: you don't need to use a single IDE for all platforms. It is very common, for example, to use Visual Studio on Windows and Xcode on Mac OS X for cross-platform projects. I'm not familiar with Linux IDEs thought so couldn't recommend anything there.
Write makefiles for each OS? Simple enough seems to me.
Concerning cross plattform development it doesn't make a difference which IDE you use. Just make sure you use a cross platform (and possibly IDE independent) build system like SCons or cmake.