What is the best GUI library?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • thesmithman
    New Member
    • Aug 2008
    • 37

    What is the best GUI library?

    Hello,
    I've been looking at GUI libraries for C / C++ and found several that look like they would work well. I'd like something that will create a cross-platform executable, is free for most purposes, and is easy to use (well documented). I think I've narrowed it down to three primary candidates:

    IUP (tecgraf.puc-rio.br)

    FOX Toolkit (fox-toolkit.org)

    Qt (qt.nokia.com)

    I'm just wondering if anyone has used one or more of these, what you thought of it, and how it compares to the others. Thanks!
  • Banfa
    Recognized Expert Expert
    • Feb 2006
    • 9067

    #2
    I have used QT and it seems to work quite well, I haven't heard of the other 2.

    However you have your terminology wrong (or you have misunderstood multi-platform development). You do not create a cross-platform executable, you have portable code which can be compiled, without modification, for all the platforms you want to target. However there will be a separate executable file for each target.

    Comment

    • thesmithman
      New Member
      • Aug 2008
      • 37

      #3
      Thanks for the clarification re: executables, I appreciate it.

      Comment

      • thesmithman
        New Member
        • Aug 2008
        • 37

        #4
        For anyone who finds this thread, here is a brief summary of my experience now that I've had time to play around with a couple of libraries on my own time:

        My initial experiments with each library consisted of little more than compiling the provided example files.

        -compiling the provided examples from the FOX toolkit resulted in compile-time errors

        -I also experimented with the wxWidgets library, which seems very well documented. Unfortunately, compiling the provided examples for wxWidgets also resulted in compile-time errors

        -I have not experimented with IUP so can't provide meaningful feedback on that library. It looks good if perhaps not as extensive as some of the other libraries.

        -consequently I am compelled to agree with Banfa that the Qt library is the most user-friendly library available for C++ GUI applications. The example files compiled without error, and while the documentation is not optimized for my personal learning style, it is ample and extensive. Furthermore, the Qt library comes bundled with its own IDE and includes the mingw compiler.

        Before anyone asks, the compile-time errors mentioned above were not path related. The files were properly included, they just did not perform as expected. I'm sure that I could get them going with a bit of tweaking; but in the interest of saving time, my preference is a solution that works out of the box, and Qt was the only one that worked out of the box.

        Comment

        • thesmithman
          New Member
          • Aug 2008
          • 37

          #5
          Almost a year later, I'm posting an update to this thread because upon reflection, I changed my mind.

          I eventually decided to go with wxWidgets after all. The library is extensive and seems to function in the required manner. It has a permissive license, with a clause allowing users to do anything they want to do with the compiled executables (such as sell them for money without revealing the source code or paying a licensing fee - very nice!)

          Because I had some initial trouble with the example code from the website, I eventually bought the book by the library's creators. If you click through to Amazon from the website, it supports the project; and the book is reasonably priced and contains thorough instructions and documentation.

          Choosing a GUI library can be a complex process involving, in my case, some back-and-forth; so my eventual decision to use wxWidgets may not apply to everyone. However, I wanted to share this, once again in case anyone ever stumbles across this thread from a Google search.

          Comment

          Working...