Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Qt-5-UI-Helpers

From Qt Wiki
Revision as of 16:58, 14 January 2015 by Maintenance script (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

English | Deutsch | Русский | Polski | Nederlands | Português | Español | Українською | فارسی | عربي | 한국어 | Suomi | Català | Italiano | 日本語 | Français | Magyar | ಕನ್ನಡ | हिन्दी | ภาษาไทย | 简体中文 | Български

Qt 5 UiHelpers

http://wiki.qt.io/Qt-5-Ui-Helpers

Brief description

The UI Helpers repository contains non-widget based ui classes that are useful for those who intend to develop applications using Qt5/QtQuick 2 but do not want to depend on QtWidgets – mainly desktop applications. Examples of classes are QUndoCommand, QAction, QFileSystemModel, etc.

History

The work started with the change 15857 [codereview.qt.io], when we discussed about moving QUndo* out of QtWidgets. In this change, first we moved these classes to QtGui, then to a new lib inside qtbase. However, it was not considered ideal and the decision was to create a separated repo for these classes, leaving QtWidgets untouched (since the Qt community do not want to introduce new bugs in this lib).

Functionality

Follows the table of QtWidgets classes that are available in the independent module UiHelpers. Notice we do not want to use the Ui prefix forever ;)

QtWidget Class UiHelpers Equivalent Status
QUndoStack UiUndoStack
QUndoCommand UiUndoCommand
QUndoGroup UiUndoGroup
QFileSystemModel UiFileSystemModel Better example needed.
QStandardItemModel UiStandardItemModel Need both example and test.
QAction UiAction Needs code and tests cleanup. Also, an example.
QCompleter UiCompletionModel Needs tests. Example OK.
QProxyModel UiProxyModel WIP

We still doing experiments, far from a stable state. The plan is to go further, provinding an API more suitable to be used with QtQuick 2.

QtQuick Plugins

As the QtQuick is now a firs class citizen of the Qt world, we are creating a few plugins that ease the development of more complex applications in QML. The plugins are adaptions of the C++ classes of this module to have a declarative API.

Follows the table of the plugins we’ll have and it’s status:

Plugin Name Functionality Status
Quick UndoFramework QML friendly API to use the UndoFramework WIP
Quick CompletionModel QML model for completion WIP

Support

The Qt5 UiHelpers target the following operating systems:

Operating system Supported Note
Windows NT/2K/XP/Vista/7 YES Tests needed
Windows CE YES Tests needed
Gnu/Linux YES Full support
MacOSX YES Tests needed
Others Unix YES All POSIX-compatible
Symbian NO

Getting the source code

There are 3 possible ways to get the source code. There is a mirror at Gitorious, where you can also download a tarball. The official repository at qt-project. Only the qt-project repository accepts contributions, using gerrit code review tool.

snapshot of the master branch [qt.gitorious.org]

gitorious mirror:

Qt-project main repository:

Building and Installing

Building

To build the module, be sure to have the Qt5 qmake in your PATH then go to the source directory of your local clone of the UiHelpers repository:

Installation

make install works as any other Qt 5 module, installing headers to $QTDIR/include/UiHelpers and libUiHelpers to $QTDIR/lib

Using

There are few examples in the repository, contributions are welcome.

Contribute

Suggestions and contributions are welcome!

After the initial import, patches must go through gerrit:

We are using the same commit-template used by Qt 5. So, to make things easier, you can do:

You can easily contact us on development@qt.io or #qt-labs @ freenode – anselmolsm, luisgabriel, mailson, dakerfp, lacerda, cidoca

To Do List

  • Docs
  • Examples
  • More tests
  • Improve model support in UiQuickCompleter
  • A complete example
  • Test on Window and OS X (contributions are welcome!)
  • Choose a better name for the project ;)
  • Become a Qt Add-on =)

Categories: