Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QSplitterHandle Class Reference
[QtGui module]

The QSplitterHandle class provides handle functionality of the splitter. More...

 #include <QSplitterHandle>

Inherits QWidget.


Public Functions

QSplitterHandle ( Qt::Orientation orientation, QSplitter * parent )
bool opaqueResize () const
Qt::Orientation orientation () const
void setOrientation ( Qt::Orientation orientation )
QSplitter * splitter () const

Reimplemented Public Functions

virtual QSize sizeHint () const
  • 217 public functions inherited from QWidget
  • 29 public functions inherited from QObject
  • 13 public functions inherited from QPaintDevice

Protected Functions

int closestLegalPosition ( int pos )
void moveSplitter ( int pos )

Reimplemented Protected Functions

virtual bool event ( QEvent * event )
virtual void mouseMoveEvent ( QMouseEvent * e )
virtual void mousePressEvent ( QMouseEvent * e )
virtual void mouseReleaseEvent ( QMouseEvent * e )
virtual void paintEvent ( QPaintEvent * )
  • 37 protected functions inherited from QWidget
  • 7 protected functions inherited from QObject
  • 1 protected function inherited from QPaintDevice

Additional Inherited Members

  • 58 properties inherited from QWidget
  • 1 property inherited from QObject
  • 19 public slots inherited from QWidget
  • 1 public slot inherited from QObject
  • 1 signal inherited from QWidget
  • 1 signal inherited from QObject
  • 4 static public members inherited from QWidget
  • 5 static public members inherited from QObject
  • 1 protected slot inherited from QWidget

Detailed Description

The QSplitterHandle class provides handle functionality of the splitter.

QSplitterHandle is typically what people think about when they think about a splitter. It is the handle that is used to resize the widgets.

A typical developer using QSplitter will never have to worry about QSplitterHandle. It is provided for developers who want splitter handles that provide extra features, such as popup menus.

The typical way one would create splitter handles is to subclass QSplitter then reimplement QSplitter::createHandle() to instantiate the custom splitter handle. For example, a minimum QSplitter subclass might look like this:

 class Splitter : public QSplitter
 {
 public:
     Splitter(Qt::Orientation orientation, QWidget *parent = 0);

 protected:
     QSplitterHandle *createHandle();
 };

The createHandle() implementation simply constructs a custom splitter handle, called Splitter in this example:

 QSplitterHandle *Splitter::createHandle()
 {
     return new SplitterHandle(orientation(), this);
 }

Information about a given handle can be obtained using functions like orientation() and opaqueResize(), and is retrieved from its parent splitter. Details like these can be used to give custom handles different appearances depending on the splitter's orientation.

The complexity of a custom handle subclass depends on the tasks that it needs to perform. A simple subclass might only provide a paintEvent() implementation:

 void SplitterHandle::paintEvent(QPaintEvent *event)
 {
     QPainter painter(this);
     if (orientation() == Qt::Horizontal) {
         gradient.setStart(rect().left(), rect().height()/2);
         gradient.setFinalStop(rect().right(), rect().height()/2);
     } else {
         gradient.setStart(rect().width()/2, rect().top());
         gradient.setFinalStop(rect().width()/2, rect().bottom());
     }
     painter.fillRect(event->rect(), QBrush(gradient));
 }

In this example, a predefined gradient is set up differently depending on the orientation of the handle. QSplitterHandle provides a reasonable size hint for the handle, so the subclass does not need to provide a reimplementation of sizeHint() unless the handle has special size requirements.

See also QSplitter.


Member Function Documentation

QSplitterHandle::QSplitterHandle ( Qt::Orientation orientation, QSplitter * parent )

Creates a QSplitter handle with the given orientation and QSplitter parent.

int QSplitterHandle::closestLegalPosition ( int pos )   [protected]

Returns the closest legal position to pos of the splitter handle. The positions are measured from the left or top edge of the splitter, even for right-to-left languages.

See also QSplitter::closestLegalPosition() and moveSplitter().

bool QSplitterHandle::event ( QEvent * event )   [virtual protected]

Reimplemented from QObject::event().

void QSplitterHandle::mouseMoveEvent ( QMouseEvent * e )   [virtual protected]

Reimplemented from QWidget::mouseMoveEvent().

void QSplitterHandle::mousePressEvent ( QMouseEvent * e )   [virtual protected]

Reimplemented from QWidget::mousePressEvent().

void QSplitterHandle::mouseReleaseEvent ( QMouseEvent * e )   [virtual protected]

Reimplemented from QWidget::mouseReleaseEvent().

void QSplitterHandle::moveSplitter ( int pos )   [protected]

Tells the splitter to move this handle to position pos, which is the distance from the left or top edge of the widget.

Note that pos is also measured from the left (or top) for right-to-left languages. This function will map pos to the appropriate position before calling QSplitter::moveSplitter().

See also QSplitter::moveSplitter() and closestLegalPosition().

bool QSplitterHandle::opaqueResize () const

Returns true if widgets are resized dynamically (opaquely), otherwise returns false. This value is controlled by the QSplitter.

See also QSplitter::opaqueResize().

Qt::Orientation QSplitterHandle::orientation () const

Returns the handle's orientation. This is usually propagated from the QSplitter.

See also setOrientation() and QSplitter::orientation().

void QSplitterHandle::paintEvent ( QPaintEvent * )   [virtual protected]

Reimplemented from QWidget::paintEvent().

void QSplitterHandle::setOrientation ( Qt::Orientation orientation )

Sets the orientation of the splitter handle to orientation. This is usually propogated from the QSplitter.

See also orientation() and QSplitter::setOrientation().

QSize QSplitterHandle::sizeHint () const   [virtual]

Reimplemented from QWidget::sizeHint().

QSplitter * QSplitterHandle::splitter () const

Returns the splitter associated with this splitter handle.

See also QSplitter::handle().

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 53
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. La rubrique Qt a besoin de vous ! 1
Page suivante

Le Qt Developer Network au hasard

Logo

Livre blanc de l'outillage de Qt Quick

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.6
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web