摘自: http://qt.nokia.com/developer/learning/qt-curriculum/qt-essentials
Fundamentals of Qt programming
UI and cross-platform libraries
- Learn the difference between a native APIs and cross platform APIs
- Know the difference between toolkits and frameworks
- Understanding the reasoning for portable software
First development steps
- Learn how to write a simple Qt application
- Understand the need for layout management
- Be able to find answers to questions about Qt
- Learn how to use qmake
-
Understand the fundamentals of QObject
- Be able to use Qt properties and other core features provided by the Qt's meta-type system
Memory management
- Understand where and when Qt deletes objects
- Know when a developer is responsible for providing code deleting allocated objects
- Understand when heap and stack allocation are used in Qt
- Be able to create and manage a Qt project via *.pro files
- Know key facts about the Qt build process and the tools used (qmake, moc, Makefiles)
- Learn how to use Qt with Qt Creator and supported IDEs
- Learn the advantages of signals/slots
- Understand the concept of signal/slots
- Learn how to connect signals to slots
- Be able to use and define your own signals/slots
Overview of modules and classes
- Be able to list major Qt modules
- Understand the concept and functionality of a Qt module
- Understand the major APIs provided by different Qt modules
- Understand the advantages of portable software
- Know the concepts of making software more portable
- Know the limitations of Qt's portability
- Understand how to make your project portable
Developing an application
Events
- Understand the concept of events
- Understand the difference between events and signal/slots
- Be able to implement event handling
- Understand the role of events in painting
- Understand the role of event filters and be able to use them
- Understand the concept of event propagation
- Learn how to post/send events
- Be able to create/send/handle custom events
Basic drawing
- Learn how to draw on widgets
- Understand the difference between QPixmap, QImage and QPicture
- Be able to load an image from a file
Main windows and actions
- Know how to use QMainWindow
- Know how to implement a menu
- Be able to use tool bars and status bars
- Understand the concept of Actions
- Know how to use QVariant to store data in Actions
- Understand the usage of scrolled areas
- Know how to store application settings in different formats with the help of QSettings
- Be aware of and be able to control the storage location of settings on different platforms
Qt debugging aids
- Be able to write debug messages
- Understand the usage of asserts
- Be able to use GDB with Qt
- Understand why event filters can be helpful for debugging
Writing your own widgets
- Know when it is better to write a custom widget
- Be able to re-implement event handler methods
- Understand when to use signals
- Be able to decide which internal variables should be made accessible
- Understand the importance of clean constructors
Using dialogs and handling UI Layout
Geometry management
- Learn how to manipulate the geometry of a widget
- Understand the concepts behind a layout manager in Qt
- Know and understand the various layout managers
- Learn how to use widgets with layout a managers
- Be able to develop own dialog with layouts
Standard dialogs
- Know the various standard dialog types
- Understand the usage of standard dialogs
- Be able to use these dialogs
- Understand how processing of events works with QProgressDialog
- Understand the structure of wizards
- Be able to create your own wizards with pages
Creating your own (custom) dialogs
- Learn how to subclass a QDialog
- Understand the usage of buttons in a dialog
- Be able to launch dialogs (not-) modal
- Know the deletion options for dialogs
- Be able to create your own dialogs with user interactions
Using Qt Designer and Qt Creator for UI development
- Understand how designer can help in creating widgets
- Understand the concept of designer files
- Be able to load designer code inside your code
- Be able to connect designer elements with business functions
- Know how to manage custom widgets in designer
- Be able to load designer files in runtime
- Be able to write a dialog using the designer tool
Strings, Resources and Help
Strings, URLs and regular expressions
- Learn how to create strings with QString
- Know how to extract data from strings
- Know how to test strings
- Know useful utility functions in QString
- Know the basics about Qt support of translation of strings into other languages
- Understand QUrl and the components of an URL
- Learn how to use QRegExp for regular expression and shell globing
Validating Input
- Be able to set input masks on line edits
- Understand the format for input masks
- Know that QCompleter offer pop-up completion
Resources
- Understand the advantage of resource files over ordinary files
- Learn how to add resource files to a project
- Know the resource XML file structure
- Be able to access resources from the application
- Know that resource files can be localized
- Learn how to load a resource file dynamically
Help system
- Know the different possibilities to provide help
- Understand the concept of the system tray icon
- Learn how to support dynamic help
Container and other non-GUI classes
Container classes
- Understand the concept of containers
- Know the difference between Java and STL styled APIs
- Know the different container types
- Be able to identify the best suited container type for your needs
- Know the requirements for a type to be storable in a container
- Be able to iterate of containers
- Know the difference standard and mutable iterators
- Be able to use the for each keyword on containers
- Know the utility container algorithms offered by Qt
- Understand the concept of implicit shared classes
QVariant
- Understand the central role of QVariant for many other container classes
- Know which types are supported by default and be able to store new data types
QSignalMapper
- Understand the concept of signal mapper
- Be able to use QSignalMapper
QTimer
- Understand the concept of QTimer
- Be able to use QTimer
- Understand the different operation modes of timers
- Understand the usage of QFile
- Be able to identify the difference between QDataStream and QTextStream
- Know the related classes for file and directory access
- Be able to read/write from/to files using Qt
- Understand the issue of text encoding and files
- Understand when better to use QDataStream instead of QTextStream
- Be able to print a widget or text document in PDF format using QPrinter
References to related learning materials
Click here to review the suggested learning materials related to the Qt Essentials Curriculum Block