Home > Articles > Programming > User Interface (UI)

How Do You Do? Making the Acquaintance of the C++ GUI Toolkits

Cameron Laird
  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Core C++: A Software Engineering Approach

Like this article? We recommend
Core C++: A Software Engineering Approach

No experience writing GUIs with C++? This quick crib sheet gives you a rapid overview of the major toolkits.

You're a good C++ programmer; you're confident about when to use STL, and you know when its complexity outweighs the benefits it brings. The source code you write ports flawlessly between operating systems, and your threads are careful to tend to only their own knitting.

There's one blank spot on your résumé, though: You've written only a few graphical user interfaces (GUIs), and never with C++. You're wary about event-oriented programming, and don't know whether widgets, window managers, and themes are different things; different kinds of things; or even have anything to do with each other.

You need a few words of advice—just a quick crib sheet, really, to get you on course. You won't be the architect for your employer's next GUI application and its quarter-of-a-million-dollar budget, but you do want to understand clearly what the lead designer is deciding.

Let me introduce you personally to the leading GUI toolkits for C++.

Vocabulary

Toolkit is one of the words that GUI specialists use for their favorite libraries. When a GUI-fied application displays a "Push me" button on the screen, it's unlikely that the programmer painted that button at that position, pixel by pixel; in almost all cases, he or she simply invoked a standard button-creation function from a large library, and then decorated the button with specific refinements such as displayed text, background and foreground colors, position on the screen and/or in relation to other objects, and so on.

Such libraries are certain to know about not just buttons, but list boxes, menus, and a variety of other widgets (displayable items). A third near-synonym for GUI library or toolkit is widget set. For the most part, this introduction uses the term toolkit.

Glossary help isn't the only reason that it's good to have a friend along the first time you meet the different toolkits. Some areas of computing are sufficiently mature (or at least settled) that the only real issues left are subjective. For example, all the leading web browsers provide roughly the same functionality and are equally usable over a broad range. In such cases, it's reasonable to try out a few candidates and see whether one has a style that makes a good (or bad) first impression.

Unlike web browsers, strategic choices of database management system or GUI toolkit embody profoundly different technical choices that are not apparent without deep experience or a great deal of background information. The job of this introduction is to specify the toolkits to you so that you not only know their names, but also a few of their essential characteristics. The focus is on important technical differentiators that are hard to spot at a casual glance.

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Related Resources

Jennifer  BortelWin FREE iPhone Developer Books and Videos- Introducing @InformIT Giveaways
By Jennifer Bortel on February 5, 2010 No Comments

Apples’s recent iPad announcement made our hearts flutter so we couldn’t resist making an announcement of our own!

Today marks the first ever @InformIT Giveaway!

We’ll regularly post a video like this one profiling spectacular prizes we’re giving away—from books and videos to T-shirts and other exciting stuff. Check out the video below to see the giveaways for today, and then scroll down for more prize details and instructions on how to win them!

Dustin Sullivan"Every OSX developer should have this book on their desk."
By Dustin Sullivan on February 1, 2010 No Comments

That was the sentence Mike Riley ended his recent Dr Dobb's CodeTalk review of Cocoa Programming Developer's Handbook with.

David ChisnallCocoa Tip of the Day, 1/29/10
By David Chisnall on January 29, 2010 No Comments

Don't ignore old versions of OS X.

See All Related Blogs

Informit Network