Some months ago Shawn Rutledge blogged about the new QtPdf module, a Qt wrapper around the PDFium library, which allows you to render PDF documents to QImages. Since that blog post we have invested some more work into the module to make it more useful in your day-to-day projects.
Author Archives: Tobias Koenig
Creating PDF/A documents with Qt
As there were some complex issues around conformity in PDF document creation within Qt, KDAB let me spend some time digging into it so we could make sure that Qt’s PDF engine generates documents up to ISO-standard. Nowadays, many official institutions have the requirement to archive their data digitally and PDF is a first class citizen for this […]
Qt Input Method – Virtual Keyboard Implementing an out-of-process virtual keyboard for text input in Qt apps
In the last episode of this blog series we learned about the overall concepts of input methods in Qt, with a look behind the scenes to see how a key press event from the native windowing system travels through the Qt input stack until it appears on screen inside a QLineEdit. In that context, the input method […]
Qt Input Method – In Depth
What is an Input Method and what do we need it for? To answer that question, let’s see what Wikipedia says: “An input method (or input method editor, commonly abbreviated IME) is an operating system component or program that allows any data, such as keyboard strokes or mouse movements, to be received as input. In […]
Using QAbstractItemModel with Cascades on BB10
With QML as abstraction layer, we nowadays have a great way to separate the business logic (C++) of our application from the graphical user interface (QtQuick/QtWidgets/Cascades) on top of it. The interface between the two layers is well defined by the meta-object API, which essentially boils down to signals and slots for notifications and invocations, […]
One DataModel to filter them all
Today I want to talk about the usage of data models in Cascades. As you might know already, Cascades provides the abstract interface bb::cascades::DataModel, which is used by bb::cascades::ListView to retrieve and display arbitrary data. Cascades also provides a couple of convenience classes that implement this DataModel interface, namely ArrayDataModel GroupDataModel QListDataModel XmlDataModel While the […]
The missing link in BB10/Cascades
Today I’d like to talk a bit about a basic concept of software design: layers. When you design your application (or framework), you should try to define layers of concerns, like storage, business logic and UI. That’s no rocket science and is taught at schools and universities for a couple for years now already. However, […]