Qt-5-UI-Helpers: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
'''English''' | [[Qt-5-UI-Helpers German|Deutsch]] | [[Qt-5-UI-Helpers Russian|Русский]] | [[Qt-5-UI-Helpers Polish|Polski]] | [[Qt-5-UI-Helpers Dutch|Nederlands]] | [[Qt-5-UI-Helpers Portuguese|Português]] | [[Qt-5-UI-Helpers Spanish|Español]] | [[Qt-5-UI-Helpers Ukrainian|Українською]] | [[Qt-5-UI-Helpers Persian|فارسی]] | [[Qt-5-UI-Helpers Arabic|عربي]] | [[Qt-5-UI-Helpers Korean|한국어]] | [[Qt-5-UI-Helpers Finnish|Suomi]] | [[Wiki-Home-Catalan|Català]] | [[Wiki-Home-Italian|Italiano]] | [[Qt-5-UI-Helpers Japanese|日本語]] | [[Qt-5-UI-Helpers French|Français]] | [[Wiki-Home-Hungarian|Magyar]] | [[Qt-5-UI-Helpers Kannada|ಕನ್ನಡ]] | [[Qt-5-UI-Helpers Hindi|हिन्दी]] | [[Qt-5-UI-Helpers Thai|ภาษาไทย]] | [[Qt-5-UI-Helpers SimplifiedChinese|简体中文]] | [[Qt-5-UI-Helpers Bulgarian|Български]]<br />
'''English'''<br />| [[:Qt-5-UI-Helpers_German|Deutsch]]<br />| [[:Qt-5-UI-Helpers_Russian|Русский]]<br />| [[:Qt-5-UI-Helpers_Polish|Polski]]<br />| [[:Qt-5-UI-Helpers_Dutch|Nederlands]]<br />| [[:Qt-5-UI-Helpers_Portuguese|Português]]<br />| [[:Qt-5-UI-Helpers_Spanish|Español]]<br />| [[:Qt-5-UI-Helpers_Ukrainian|Українською]]<br />| [[:Qt-5-UI-Helpers_Persian|فارسی]]<br />| [[:Qt-5-UI-Helpers_Arabic|عربي]]<br />| [[:Qt-5-UI-Helpers_Korean|한국어]]<br />| [[:Qt-5-UI-Helpers_Finnish|Suomi]]<br />| [[:Wiki Home Catalan|Català]]<br />| [[:Wiki Home Italian|Italiano]]<br />| [[:Qt-5-UI-Helpers_Japanese|日本語]]<br />| [[:Qt-5-UI-Helpers_French|Français]]<br />| [[:Wiki Home Hungarian|Magyar]]<br />| [[:Qt-5-UI-Helpers_Kannada|ಕನ್ನಡ]]<br />| [[:Qt-5-UI-Helpers_Hindi|हिन्दी]]<br />| [[:Qt-5-UI-Helpers_Thai|ภาษาไทย]]<br />| [[:Qt-5-UI-Helpers_SimplifiedChinese|简体中文]]<br />| [[:Qt-5-UI-Helpers_Bulgarian|Български]]<br />[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]


=Qt 5 UiHelpers=
= Qt 5 UiHelpers =


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


==Brief description==
== 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.
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==
== History ==


The work started with the [http://codereview.qt.io/#change,15857 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).
The work started with the &quot;change 15857&amp;quot;:http://codereview.qt.io/#change,15857, 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==
== 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 <span class="smiley">;)</span>
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 ;)


{| class="infotable line"
{background:#009900}. |''. QtWidget Class |''. UiHelpers Equivalent |''. Status<br />|<br />|QUndoStack<br />|UiUndoStack<br />| -<br />|<br />|QUndoCommand<br />|UiUndoCommand<br />| -<br />|<br />|QUndoGroup<br />|UiUndoGroup<br />| -<br />|<br />|QFileSystemModel<br />|UiFileSystemModel<br />|Better example needed.<br />|<br />|QStandardItemModel<br />|UiStandardItemModel<br />|Need both example and test.<br />|<br />|QAction<br />|UiAction<br />|Needs code and tests cleanup. Also, an example.<br />|<br />|QCompleter<br />|'''UiCompletionModel'''<br />|Needs tests. Example OK.<br />|<br />|QProxyModel<br />|UiProxyModel<br />|'''WIP'''<br />|
|- style="background: #009900"
<br />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.
! QtWidget Class
<br />h3. QtQuick Plugins
! UiHelpers Equivalent
<br />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.
! Status
<br />Follows the table of the plugins we'll have and it's status:
|-
<br />{background:#009900}. |''. Plugin Name |''. Functionality |''. Status<br />|<br />|'''Quick UndoFramework'''<br />|QML friendly API to use the UndoFramework<br />|'''WIP'''<br />|<br />|'''Quick CompletionModel'''<br />|QML model for completion<br />|'''WIP'''<br />|
| 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
| '''<span class="caps">WIP</span>'''
|}


We still doing experiments, far from a stable state. The plan is to go further, provinding an <span class="caps">API</span> more suitable to be used with QtQuick 2.
== Support ==
 
===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 <span class="caps">QML</span>. The plugins are adaptions of the C++ classes of this module to have a declarative <span class="caps">API</span>.
 
Follows the table of the plugins we’ll have and it’s status:
 
{| class="infotable line"
|- style="background: #009900"
! Plugin Name
! Functionality
! Status
|-
| '''Quick UndoFramework'''
| <span class="caps">QML</span> friendly <span class="caps">API</span> to use the UndoFramework
| '''<span class="caps">WIP</span>'''
|-
| '''Quick CompletionModel'''
| <span class="caps">QML</span> model for completion
| '''<span class="caps">WIP</span>'''
|}
 
==Support==


The Qt5 UiHelpers target the following operating systems:
The Qt5 UiHelpers target the following operating systems:


{| class="infotable line"
{background:#009900}. |''. Operating system |''. Supported |_. Note<br />|<br />|Windows NT/2K/XP/Vista/7<br />|YES<br />|Tests needed<br />|<br />|Windows CE<br />|YES<br />|Tests needed<br />|<br />|Gnu/Linux<br />|YES<br />|Full support<br />|<br />|MacOSX<br />|YES<br />|Tests needed<br />|<br />|Others Unix<br />|YES<br />|All POSIX-compatible<br />|<br />|Symbian<br />|NO<br />| -<br />|
|- style="background: #009900"
! Operating system
! Supported
! Note
|-
| Windows NT/2K/XP/Vista/7
| <span class="caps">YES</span>
| Tests needed
|-
| Windows CE
| <span class="caps">YES</span>
| Tests needed
|-
| Gnu/Linux
| <span class="caps">YES</span>
| Full support
|-
| MacOSX
| <span class="caps">YES</span>
| Tests needed
|-
| Others Unix
| <span class="caps">YES</span>
| All <span class="caps">POSIX</span>-compatible
|-
| Symbian
| NO
|
|}


==Getting the source code==
== 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.
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.


[https://qt.gitorious.org/qtplayground/uihelpers/archive-tarball/master snapshot of the master branch] ''[qt.gitorious.org]''
&quot;snapshot of the master branch&amp;quot;:https://qt.gitorious.org/qtplayground/uihelpers/archive-tarball/master


gitorious mirror:<br />
gitorious mirror:<br /><code><br />git clone git://gitorious.org/qtplayground/uihelpers.git<br /></code>


Qt-project main repository:<br />
Qt-project main repository:<br /><code><br />git clone ssh://&amp;lt;gerrit username&amp;gt;</code>codereview.qt.io:29418/playground/uihelpers.git<br /><code>


==Building and Installing==
== Building and Installing ==


===Building===
=== Building ===


To build the module, be sure to have the Qt5 qmake in your <span class="caps">PATH</span> then go to the source directory of your local clone of the UiHelpers repository:<br />
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:<br /></code><br />cd uihelpers<br />qmake<br />make<br /><code>


===Installation===
=== Installation ===


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


==Using==
== Using ==


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


==Contribute==
== Contribute ==


Suggestions and contributions are welcome!
Suggestions and contributions are welcome!
Line 144: Line 60:
After the initial import, patches must go through gerrit:
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:<br />
</code><br />git push ssh://codereview.qt.io:29418/playground/uihelpers.git refs/for/master<br /><code>
 
We are using the same commit-template used by Qt 5. So, to make things easier, you can do:<br /></code><br />git config commit.template $PATH_TO_YOUR_QT5_REPO/.commit-template<br /><code>


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


==To Do List==
== To Do List ==


* Docs
* Docs
Line 156: Line 74:
* A complete example
* A complete example
* Test on Window and OS X (contributions are welcome!)
* Test on Window and OS X (contributions are welcome!)
* Choose a better name for the project <span class="smiley">;)</span>
* Choose a better name for the project, like &quot;fixithere&amp;quot;:http://www.fixithere.net ;)
* Become a Qt Add-on =)
* Become a Qt Add-on =)
===Categories:===
* [[:Category:Playground|Playground]]

Revision as of 09:48, 24 February 2015

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

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&quot;:http://codereview.qt.io/#change,15857, 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 ;)

{background:#009900}. |. 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.
h3. 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:
{background:#009900}. |. 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:

{background:#009900}. |. 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&quot;:https://qt.gitorious.org/qtplayground/uihelpers/archive-tarball/master

gitorious mirror:

<br />git clone git://gitorious.org/qtplayground/uihelpers.git<br />

Qt-project main repository:

<br />git clone ssh://&amp;lt;gerrit username&amp;gt;

codereview.qt.io:29418/playground/uihelpers.git

== 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:<br />


cd uihelpers
qmake
make

=== 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:


git push ssh://codereview.qt.io:29418/playground/uihelpers.git refs/for/master

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


git config commit.template $PATH_TO_YOUR_QT5_REPO/.commit-template

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, like "fixithere&quot;:http://www.fixithere.net ;)
  • Become a Qt Add-on =)