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)


  • Moderators

    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.


  • Moderators

    Mr.Universe: I can't find the official curriculum list, but "this thread":/forums/viewthread/12675 can give some insight into topics and items to be comfortable with.



  • 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....



  • thanks gerolf, I already knew the thread you posted, but its for the core c++ exam, not for the essentials. But I'll try to contact digia through the certification page, perhaps they can give me a copy...


  • Moderators

    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!


  • Moderators

    Good luck with your exam! Looking forward to seeing a certification badge below your name soon!



  • 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: Internationalization

    Foundations 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 scope

    An 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 Widgets

    The 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

  • Moderators

    Thanks for the info, broadpeak! I touched up the formatting a bit in your posts. Hope you don't mind.



  • Thanks for the Info broadpeak & mlong... :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.