25 September, 2012

Help out KDE marketing!

Hi Folks!

The KDE marketeers are gearing up for a new challenge: engage the wider Qt developer community about KDE.

"Now why would they care about KDE?" You might be asking yourself...

Well, our biggest asset is KDELibs! Lots of interesting classes up to full frameworks like Phonon and such ready for the taking and using. Much of these will become far easier to use when we transform KDELibs into Frameworks 5. More rapid application development and less maintenance work are the result.

The question we marketing people have is:
what classes and components in KDELibs/Frameworks 5 do you think are most interesting for external Qt developers and why?
Out of your answers we hope to create a presentation with an overview of the most useful parts of Frameworks 5 for Qt developers. This presentation can be given at events like the Qt Developers Day. and should get people excited about what's coming from the KDE side to Qt.

You can add suggestions and if possible please (links to) explanations, tutorials/documentation and why's in the comments below or on mail to myself or kde promo.

Thanks in advance!


  1. Kross is an awesome piece of tech, it could be used to better integrate scripting languages on Qt applications just like the QtScript, but it's easyer to write and it also supports more languages, like Python, Ruby and Javascript.

    1. Any chance you can provide say links to explanations and documentation and such, if there is good stuff? It'd be appreciated :D

    2. I don't have any experience using kross but I heard various times about it - in our application (mentioned in my comment below) we used Qt Script bindings generator for js bindings but it was a real horror! Kross maybe could have improved that...

    3. http://en.wikipedia.org/wiki/Kross_(KDE)

      That has most of the important links.

      KConfig and KConfigXT technologies are also a plus ( it's a bit of pain to write configuration with QSettings )

      KHotNewStuff could be awesome, like the guy ↓ said.

  2. I tried/succeeded to integrate the KPluginSystem and KHotnewStuff in one of my projects.
    It was REALLY hard and a separate library would have been great.. This of course also includes the whole compression libraries (KArchive, ..). Maybe even plasmas package architecture - it can for sure be adapted to be generic :)

    For anyone interested here is my project:
    the branch kdelibs-stripped is not the one in use - the classes useful to me are directly included in the master.

    1. we didn't use kde libs directly because we wanted to stay compatible with all platforms without dragging in tons of dependencies (obviously ;) )

  3. I would say KConfig and especially KConfigXT is a real gem. It basically allows you to get all the configuration interfaces for free by just describing your configuration in an XML file and providing a ui file. Really awesome technology

  4. Let me add one myself - as I'm not entirely sure about this: Marble. You can integrate marble as a widget or something in applications, right? Isn't that way cool? Is that documented properly and relatively easy to do, though?

  5. Suggestion from Sune: Threadweaver (they use it in their company stuff). It is one of the tier-1 frameworks of KDE, well documented, easy to integrate and cleanly split up from KDELibs already.

    The other tier-1 technologies are:
    `ls tier1` in kdelibs-frameworks: itemmodels karchive kcodecs kcoreaddons kdbusaddons kidletime kjs kplotting kwidgetsaddons kwindowsystem solid threadweaver

    kplotting is points in a graph, line charts, bar charts, that kind of stuff. For more basic usecases than QWT, KDChart and Qt Commercial Charts.

  6. David send this by mail:

    I think the best example is the KArchive frameworks, since Qt developers have
    been missing ZIP support in Qt (and other archive formats), as well as single-
    file gzip/bzip2/xz compression.

    Then there's sonnet, a complete spellchecking framework (core and widgets).

    Solid, for hardware detection (http://solid.kde.orgiirc)

    Threadweaver, for giving out jobs to threads with support for job dependencies
    (which is not available in QThreadPool).

    KIdleTime, detecting when the user is not using the computer (cross-platform)

    KConfig, a non-deprecated configuration framework
    (with better API and more features than the almost-deprecated QSettings)

    Many addons for the model/view framework (currently called "itemmodels", maybe
    that's a bit too generic though).

    KIO, a "VFS" implementation based on Qt.

    KCoreAddons, for
    * a job 'framework' for asynchronous tasks
    * random numbers / random strings / random ordering in lists
    * auto-saving, backups
    * file locking (which I plan to try and move to Qt for 5.1)

    A large number of additional widgets (capacity bar, led, ruler, selector,
    separator, x/y selector, ... a lot more coming)

    XMLGUI, for user-configurable desktop GUIs (menus/toolbars/shortcuts).

    And a lot more....

  7. Anders Lund send this by mail:

    Things that really adds value to applictaions from a user POV are KIO + kde
    file dialogs, GHNS. Really a reason for loving KDE marble over the plain Qt
    one, for example.

    For developers, kxmlgui, kparts I think. Katepart of course!


    http://api.kde.org/4.x-api/kdelibs-apidocs/kio/html/index.htmlkde: kxmlgui
    kde: xmlgui

  8. About documentation:
    There is only documentation for a few of the technologies, and not well organized - lots of work to do there. There IS stuff on techbase.kde.org and api.kde.org but it is not always complete. WIP, help is very welcome!

  9. Mark: KIO without a doubt!
    KIO is just an awesome piece of technology that makes it so easy to
    just create file browsing (among things) from a lot of different
    protocols. Bad thing is that it depends on other KDE libs at the
    moment thus making it not really feasible for people that want to use
    it without KDE. Though that "minor" annoyance should go away since KIO
    is scheduled to only have Qt as it's dependency (right David?).

    KArchive is also awesome simply because Qt doesn't provide anything
    alike. There is "quazip" but it's not as good.

    KIdleTime is also a neat tech thing to use if one needs it.
    There is also kdelibs/dnssd, which is a pretty good Qt wrapper for dns service discovery (read Avahi).


Say something smart and be polite please!