Projects/Usability/HIG/CustomControls: Difference between revisions

From KDE TechBase
< Projects‎ | Usability‎ | HIG
(→‎Guidelines: add keyboard navigation bullet point)
Line 16: Line 16:
** Looks as close to existing Qt or kdelibs widgets as possible (use QStyle or QStylePainter to draw elements).
** Looks as close to existing Qt or kdelibs widgets as possible (use QStyle or QStylePainter to draw elements).
** Is based on an existing widget rather than a plain QWidget if possible
** Is based on an existing widget rather than a plain QWidget if possible
** supports keyboard navigation (receives and gives focus, indicates when it is focused)
* If possible, consider making your widget reusable enough so that it can be integrated in standard widgets
* If possible, consider making your widget reusable enough so that it can be integrated in standard widgets


== Implementation ==
== Implementation ==

Revision as of 15:44, 10 July 2013

 
Under Construction
This is a new page, currently under construction!

Purpose

Examples

Guidelines

  • Do you really need a custom widget? Check whether an existing widget cannot be used instead.
  • It is strongly recommended to consult the usability team (https://git.reviewboard.kde.org/groups/usability/) and the accessibility team (https://git.reviewboard.kde.org/groups/kdeaccessibility/) in advance of your implementation.
  • Create interaction by following natural design. Find the appropriate metaphor and create interface as near to real usage as possible.
  • Make sure your new widget:
    • Resizes correctly
    • Handles right-to-left setups
    • Supports keyboard navigation (receives and gives focus, indicates when it is focused)
    • Works well with different color schemes
    • Looks as close to existing Qt or kdelibs widgets as possible (use QStyle or QStylePainter to draw elements).
    • Is based on an existing widget rather than a plain QWidget if possible
    • supports keyboard navigation (receives and gives focus, indicates when it is focused)
  • If possible, consider making your widget reusable enough so that it can be integrated in standard widgets

Implementation