Difference between revisions of "Frameworks/Overview"

Line 97: Line 97:
== Sonnet ==
== Sonnet ==
Sonnet provides spell-checking capabilities to applications.
Sonnet uses plugins for the actual spell-checking, and provides a Qt-style abstraction on top of these. Available backends include aspell, enchant, hspell and hunspell.
== ThreadWeaver ==
== ThreadWeaver ==

Revision as of 15:34, 19 September 2013

This page gives an overview of available libraries and solutions in KDE Frameworks 5.

Tier 1

The frameworks in Tier 1 have Qt as their sole dependency. They do not depend on each other, or on frameworks in other tiers.


The ItemModels framework contains data models on top of QAbstractItemModel that help in common tasks, such as sorting, proxying and filtering.

ItemModels contains useful classes such as a model for checkable or selectable items, recursive filtering and breadcrumb selection.


KArchive offers easy packing and unpacking of files.

KArchive comes with support for a number of popular packing codecs, such as Tar, GZip, Zip, 7z and xz and offers a self-contained and easy to use library for archiving files.


KCodecs offers commonly used encoding algorithms, such as base64, uu and quoted-printable specifications.

A wrapper class for the most commonly used encoding and decoding algorithms. Currently there is support for encoding and decoding input using base64, uu and the quoted-printable specifications.


The KConfig framework offers functionality around reading and writing configuration.

KConfig consists of two parts, KConfigCore and KConfigGui. KConfigCore offers an abstract API to configuration files. It allows grouping and transparent cascading and (de-)serialization. KConfigGui offers, on top of KConfigCore, shortcuts and configuration for some common cases, such as session and window restoration.


KCoreAddons offers many commonly used solutions for caching, ui, job handling, randomization, macros and strings and shell and user handling.

KCoreAddons's KSharedDataCache is a fast, memory-mapped inter-process cache for applications. It can be used for various datatypes and is optimized for fast access. KDirWatch allows to monitor the filesystem for changes, and is essential when writing event-driven code. KJob offers a flexible job-handling API, containing simple and composite jobs, job tracking and UI delegates. KRandom allows to create random number and strings, and to randomize sequences of data. KStringHandler and KMacroExpander allow for flexible text manipulation and contain some convenience API on top of QString. KShell allows for manipulation and parsing of shell commands.


KDBusAddons provides API for registering services, KDED modules and applications according to Freedesktop standards.

KDBusAddons offers a thread-safe connection pool, and tools to register applications on the session bus as convenience API on top of QDBus.


KGuiAddons provides higher level user interface components for common tasks.

KGuiAddons provides the following things:

  • Color manipulation such as shading, tinting, lightening and mixing
  • Color collections
  • Font utilities for drawing taking text dimensions into account
  • Word-wrapping
  • Icon utilities
  • Modifier key helpers'
  • A lot of image format codecs for image de- and encoding, such as EXR, PSD, TGA, TIFF, XCF, etc.


KIdleTime provides notifications of device's idle time.

KIdleTime is a platform-independent framework that allows detecting and notifying of idle time events of the device. It can, for example be used to start an action (or a job) after a certain amount of user inactivity.


KJS is a javascript parser and engine.

KJS offers parsing and execution of javascript on top of Qt.


KPlotting offers graph drawing functions.

KPlotting can be used to draw beautiful graphs on top of QWidgets. It takes care of transformation of data coordinates to screen coordinates, among other things.


KWidgetAddons contains higher-level user interface elements for common tasks.

KWidgetAddons contains widgets for the following areas:

  • Keyboard accelerators
  • Action menues and selections
  • Capacity indicator
  • Character selection
  • Color selection
  • Drag decorators
  • Fonts
  • Message boxes
  • Passwords
  • Paging of e.g. wizards
  • Popups and other dialogs
  • Rating
  • Ruler
  • Separators
  • Squeezed labels
  • Titles
  • URL line edits with drag and drop
  • View state serialization


KWindowSystem provides access to certain properties and features of the window manager.
KWindowSystem provides information about the state of the window manager and allows asking the window manager to change them using a more high-level interface than the NETWinInfo/NETRootInfo lowlevel classes.


Solid provides a platform-independent hardware abstraction layer.

Solid allows reading and manipulation of all kinds of devices, such as storage volumes, processors, networking devices, batteries, input devices, etc..


Sonnet provides spell-checking capabilities to applications.

Sonnet uses plugins for the actual spell-checking, and provides a Qt-style abstraction on top of these. Available backends include aspell, enchant, hspell and hunspell.


Tier 2






Tier 3


Content is available under Creative Commons License SA 4.0 unless otherwise noted.