Curriculum Block for QT Essentials
-
Hi,
I'm taking the QT-Essentials exam in 2 weeks, and I am searching for the curriculum block for about a month now, and I need to start preparing now...
Has anyone a copy of the old page that he can post here? I completely relied on this one page when I scheduled the exam, and a few days later, it was gone.
This would be really helpful... I don't want to cancel the exam just because I don't know what to learn... -
Have you at least googled for learning materials? There is also a lot information on this forum!
"Training Materials":http://qt.digia.com/Product/Learning/Education/elearning/online-training/
"Qt in Education Course Materials":http://qt.digia.com/Product/Learning/Education/course-materials/ -
If I was too lazy to learn, I wouldn't take the exam and wouldn't ask for the curriculum!
I know the learning materials, that's not the problem. What I need to know, is which topics are relevant for the exam. I just want to know what to learn (and when I scheduled the exam, this list was online at qt-project.org)
-
bq. Or you are too lazy to learn?
This condescending tone is uncalled for. Mr.Universe was asking a very specific and reasonable question, as the old certification curriculum pages that were posted on the qt.nokia.com site are no longer available. I had tried, myself, to search for them to offer up a cached version to him, but had no luck.
-
Sorry, was thinking you are looking for old examples from peoples who has already done this exam. Just for study this pages and got through exam like peoples do with CCNA exams. My bad. Don't be angry to me :)
-
thanks mlong,
I also tried to get the pages via google cache or archive.org, but couldn't find it.
The thread you posted isn't exactly what I was looking for, but it looks like a suitable alternative...
Can you tell me wether the links posted there by Rahul Das cover all topics that are part of the essentials-exam? (From my memory I'd guess they do) -
Hi Mr. Universe,
There are even more threads with topics, like "this one":http://qt-project.org/forums/viewthread/20507/
Aditionally, here is the link to the "certification page":http://qt.digia.com/product/learning/certification/ . Currently it only says: we are collecting data and will post it soon....
-
Mr.Universe,
Those topics, as I recall, seem to be pretty comprehensive. The most important part, though, is that you're already comfortable with Qt development in general. The purpose of certification is to indicate that you're genuinely knowledgeable in the area, so just make sure that you're comfortable with those general types of topics. If you're comfortable with the given topics in that list, then you've probably done enough development with Qt to handle any other related topics which may or may not be listed there.
-
Thanks mlong,
I guess you're right. I am working with Qt every day in my job, so I'm sure I can answer most of the questions without problems, but I remember some topics in the curriculum I never came in touch with during my work... But from my memory I think the list in the other thread covers those topics...
I also sent an e-mail to digia, if they can send me a copy of the old page, if they do, I'll post it here, if not, I'll probably pass the exam anyway! -
Recommended books and chapters for Essentials:
@
C++ GUI Programming with Qt 4, 1st and 2nd Edition, by Jasmin Blanchette, Mark Summerfield. The 1st Edition is also available online.
Part I Basic Qt
Part II Intermediate Qt
Section 6: Layout Management
Section 7: Event Processing
Section 11: Container Classes
Section 12: Input/Output
Section 16: Providing Online Help
Section 17: InternationalizationFoundations of Qt Development, by Johan Thelin
Part 1: Getting to Know Qt
Part 2: The Qt Building Blocks
Chapter 6: Creating Widgets
Chapter 7: Drawing and Printing (excluding Graphics View)
Chapter 8: Files, Streams, XML (XML in basics only)
Chapter 9: Providing Help
Chapter 10: Internationalization and Localization
Chapter 15: Building Qt Projects, basic use of qmake, cmake is not in scopeAn Introduction to Design Patterns in C++ with Qt 4, by Alan Ezust, Paul Ezust
Part I: Introduction to C++ and Qt 4
Section 3: Introduction to Qt
Section 4: Lists
Part II: High-Level Programming
Section 9: QObject
Section 10: Generics and Containers
Section 11: Qt GUI WidgetsThe Book of Qt 4: The Art of Building Qt Applications by Daniel Molkentin
Chapter 1: Basics, Tools, and First Code
Chapter 2: The Tools Needed to Create Dialogs
Chapter 3: GUI Design Using the Qt Designer
Chapter 4: Developing a GUI Application Based on a Main Window
Chapter 5: Laying Out Widgets (only Basics)
Chapter 6: Dialogs (only Basics)
Chapter 7: Events, Drag and Drop, and the Clipboard (only Events)
Chapter 10: The Graphics Library "Arthur" (only Basics)
Chapter 11 Input/Output Interfaces
@ -
Topics:
Qt Essentials Curriculum Block
Version 1.1
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
QObject basics
- 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
Edit and build
- 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
Signals and slots
- 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
Some thoughts about portability
- 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
Settings
- 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
-
Topics continued:
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
Generic IO, files and printing
- 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