T here are so many people I want to thankeverybody involved in the project has been helpful, positive, and supportive. It has been a great time working with all of you.
First, many thanks go to Witold Wysota, who has provided me with feedback, technical input, and kind words. Without his support I could not have completed this project. I would also like to thank Jason Gilmore from Apress for his excellent feedback and writing tips. Thanks to him, the text is far more enjoyable to read.
Jasmin Blanchette of Trolltech helped me by producing screenshots from the Mac. The excellent support team at Trolltech also clarified unclear issues and fixed bugs. Everyone at Trolltech has been very positive and supportive.
I want to thank all the people at Apress: Matt Wade, who gave me the chance to do this; Elizabeth Seymour, Grace Wong, and Tracy Brown Collins for managing the project. An extra thanks to Tracy who pushed me the last mile to get the project done on time.
Without the help of Nancy Sixsmith's language skills, the text would not have been as easy to read. Thanks to her attention to detail and excellent writing abilities, the text reads as well as it does today.
There are so many people involved in this project that I have not worked with so closely. I'm still very grateful to their efforts and appreciate their skills. Many thanks go to Kelly Winquist, Dina Quan, Brenda Miller, April Milne, and Paulette McGee.
APPENDIX A
Third-Party Tools
T his appendix shows you some third-party tools. A large community of projects is built on and around Qt, and the tools shown here are just a small selection of what is available. The purpose is not to show you how they are used, but to show you the diversity of available tools. Each of the projects mentioned comes with good documentation and is easy to learn.
Qt Widgets for Technical Applications: Qwt
- Category: Widgets and classes
- Website:
http://qwt.sf.net
- License: Qwt Licensea generous version of LGPL
Qwt is a collection of classes and widgets for use in technical applications. The widgets include dials, sliders, knobs, plots, scales, and legends. The widgets provided are well integrated with Designer through plugins.
Some sample screenshots of Qwt in action can be seen in , which shows some of the dials that Qwt provides. These dials, combined with wheels and sliders, make it easy to specify values. However, the real power of Qwt is with its plotting capabilities. You can create scatter plots, curve plots, and histogramswith or without contour lines. The data for all these plots is served through the QwtData
class or its descendants. By inheriting the QwtData
class, you can calculate the data to plot on the fly and then feed it to the appropriate plot widget.
Figure A-1.Widgets and plots from the Qwt examples
wwWidgets
- Category: Widgets
- Website:
http://www.wysota.eu.org/wwwidgets
- License: GPL
The wwWidgets library complements Qt with a range of widgets. These widgets focus on the areas that Qt does not fill from the startcolor-picking widgets, onscreen keypads, and suchbut also on common composed widgets such as the startup tip widget. Examples from a Designer session are shown in . These widgets save time because they don't have to be reinvented with every new project.
The wwWidgets library is very well integrated with the rest of Qtboth in Designer and the build system. When it is installed, it adds itself to the Qt installation, so all you need to do to use it is add CONFIG += wwwidgets
in your project filejust as simple as using a Qt module.
Figure A-2.Some wwWidgets in a Designer session
QDevelop
- Category: Development environment
- Website:
http://www.qdevelop.org
- License: GPL
QDevelop is a true cross-platform, integrated development environment adapted for Qt. It provides a common development environment across all platforms supported by Qt. You can see a sample session in .
The strengths of QDevelop include its capability to debug applications using the GNU debugger (gdb), capability to handle QMake projects, capability to provide code completion and lists of methods using ctags, and its plugin-based architecture.
Caution To use gdb on the Windows platform, you must first install it (you can find details on the QDevelop website).
Figure A-3.QDevelop in action
The dependency of ctags for code completion and method lists means that the interface can be slow because ctags is run as an external process, and QDevelop waits for it to complete before these features actually work.
QDevelop does have an annoying bug. When requesting help for a member function of a Qt class, it fails. You must always position the cursor over the actual class name when looking for help.
When Qt Assistant is launched to provide help, it launches as a separate application. QDevelop launches both Designer and Qt Assistant as external applications running in parallel with the QDevelop application. This works great, but you have to switch manually back and forth between the applications.
Edyuk
- Category: Development environment
- Website:
http://edyuk.sf.net
- License: GPL
Edyuk is another cross-platform, integrated development environment designed for use with Qt. Edyuk, which is built around perspectives and plugins, integrates both Designer and Qt Assistant fully, so you can switch between code view and Designer within the Edyuk environment. shows screenshots that display the code perspective (top) and the Designer perspective (bottom).