wxLua et wxWidgets:
Mode d'emploi.
 wxWidgets
Lua
Flèche gauche accueil wxWidgets lua notes Flèche droite
Description détaillée.

Classe: wxSizer().

wxSizer est une classe de base abstraite, utilisée pour la mise en place des sous-fenêtres dans la frame principale.

Vous ne pouvez pas utiliser directement wxSizer.

A la place, vous devrez utiliser l'une des classes Sizer qui en découle.
Six classes sont mises à votre disposition, wxBoxSizer(), wxStaticBoxSizer(), wxStdDialogButtonSizer(), wxGridSizer(), wxFlexGridSizer() , wxGridBagSizer().

L'algorithme de mise en page utilisé par les "Sizers" de wxWidgets est similaire à ceux utilisés dans d'autres langages, tels que AWT de Java, GTK ou Qt.
Il est basé sur le fait que la sous-fenêtres possède ses propres déclarations de taille minimale et de capacité à s'étirer si les dimensions de la fenêtre parent changent.

Ceci signifie que le programmeur ne place pas le format d'un "contrôle" ou d'un "document" au début de son programme, mais que la boîte de dialogue ou la fenêtre conteneur sera assignée à un sizer et que ce sizer se chargera de tout le travail d'ajustement.
Le sizer à son tour, interrogera ses enfants qui peuvent être des fenêtres normales, un espace vide ou d'autres sizers, de façon à ce que la hiérarchie des sizers puisse être construite.

Notez que wxSizer ne découle pas de wxWindow et n'interfére donc pas avec l'ordre des tabulations et que cette classe nécessite très peu de ressources par rapport à une véritable fenêtre sur l'écran.

Ce qui rend les Sizers aussi bien adaptés à l'utilisation des wxWidgets est le fait que chaque vérification d'un objet retourne la taille minimale de cet objet, de façon à ce que l'algorithme puisse traiter les différences dans les tailles de police ou autre fenêtre en fonction des plates-formes.
Si par exemple la police standard ou la conception globale des wxWidgets exige plus d'espace, la taille initiale sera automatiquement revue et corrigée.

Les Sizers peuvent également être utilisés pour contrôler la disposition des éléments lorsque la fenêtre est agrandie ou rétrécie.
Les méthodes objet:Add(), objet:insert(), et objet:Préfixe() renvoient un pointeur vers le wxSizerItem nouvellement ajouté. Il suffit d'ajouter l'espace vide de la taille et les attributs souhaités, puis d'utilisez la méthode objet:getRect() pour déterminer où les opérations de dessin devront avoir lieu.

Noter aussi que les Sizers, comme les fenêtres enfants, sont la propriété de la bibliothèque et seront supprimées par elle. Ce qui implique qu'ils doivent être alloués sur le tas. Toutefois, si vous créez un sizer et que vous ne l'ajoutez pas à un autre sizer ou à une fenêtre, la bibliothèque ne sera alors pas en mesure de supprimer ce sizer orphelin et dans ce cas, et uniquement dans ce cas, il devra être supprimé explicitement.

Les "flags".

L'argument "flag" accepté par les constructeurs wxSizeItem et autres fonctions, comme par exemple objet:Add(), est une combinaison des flags suivants.
Deux principaux comportements sont définis à l'aide de ces flags:
L'un concerne la bordure autour d'une fenêtre: le paramètre détermine la largeur des bordures alors que les flags déterminent de quel côté(s) de l'élément la bordure sera ajoutée.
Les autres indicateurs déterminent comment se comporte l'élément Sizer lorsque l'espace alloué aux changements est peu dépendant de la nature spécifique du Sizer utilisé.

wxTOP
wxBOTTOM
wxLEFT
wxRIGHT
wxALL
Ces indicateurs sont utilisés pour spécifier de quel côté(s) de l'élément sizer la largeur de la bordure s'appliquera.
wxEXPANDL'item sera élargi pour remplir l'espace assigné à l'élément.
wxSHAPEDL'item sera élargi autant que possible tout en conservant son ration d'aspect.
wxFIXED_MINSIZENormalement wxSizer utilise GetAdjustedBestSize() pour déterminer la taille minimale des objets, et l'utiliser pour calculer les dimensions de la mise en page. Cela permet de refaire les mises en page pour ajuster les éléments dont les dimensions auraient changées. Si vous préférez qu'un élément de la fenêtre conserve sa taille d'origine, utiliser wxFIXED_MINSIZE
wxRESERVE_SPACE_EVEN_IF_HIDDENNormalement wxSizer n'alloue pas d'espace pour les fenêtres ou les éléments cachés. Cet indicateur remplace ce comportement afin que suffisamment d'espace soit alloué pour la fenêtre même si elle n'est pas visible. Cela permet de manière dynamique d'afficher et de masquer les contrôles sans redimensionnement de la fenêtre parente. (Disponible depuis 2.8.8.)
wxALIGN_CENTER
wxALIGN_CENTRE
wxALIGN_LEFT
wxALIGN_RIGHT
wxALIGN_TOP
wxALIGN_BOTTOM
wxALIGN_CENTER_VERTICAL
wxALIGN_CENTRE_VERTICAL
wxALIGN_CENTER_HORIZONTAL
wxALIGN_CENTRE_HORIZONTAL
Les "flags" wxALIGN_ vous permettent de spécifier l'alignement de l'objet dans l'espace qui lui est assigné par le Sizer et ajusté à la borduer, le cas échéant.
Les méthodes.

Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.

Pour Ajouter une fenêtre enfant au wxSizer.
Add(objetWindow, proportion, flag, border)
Add(objetSizer, proportion, flag, border)
Add(width, height, proportion, flag, border)
Add(objetWindow, objetSizerFlags)
Add(objetSizer, objetSizerFlags)
AddSpacer(size)
AddStretchSpacer(proportion = 1) ( ajoute un espace extensible )
proportion = 0, flag = wx.wxNOM_FLAG, border = largeur de la bordure

Pour Insérer une fenêtre enfant au wxSizer, avant l'élément existant à index.
Insert(index, objetWindow, proportion, flag, border)
Insert(index, objetSizer, proportion, flag, border)
Insert(index, width, height, proportion, flag, border)
Insert(index, objetWindow, objetSizerFlags)
Insert(index, objetSizer, objetSizerFlags)
InsertSpacer(index, size)
InsertStretchSpacer(index, proportion = 1) ( insère un espace extensible )
proportion = 0, flag = wx.wxNOM_FLAG, border = largeur de la bordure

Pour Préfixer une fenêtre enfant au wxSizer.
Prepend(objetWindow, proportion, flag, border)
Prepend(objetSizer, proportion, flag, border)
Prepend(width, height, proportion, flag, border)
Prepend(objetWindow, objetSizerFlags)
Prepend(objetSizer, objetSizerFlags)
PrependSpacer(size)
PrependStretchSpacer(proportion = 1) ( préfixe un espace extensible )
proportion = 0, flag = wx.wxNOM_FLAG, border = largeur de la bordure

Méthodes divers.
CalcMin()Cette méthode est abstraite et doit être remplacée par une classe dérivée.
Detach(objetWindow)Détache l'objetWindow du sizer sans le détruire.
Detach(objetSizer)Détache l'objetSizer du sizer sans le détruire.
Detach(index)Détacher un élément à la position d'index du sizer sans le détruire.
Fit(objetWindow)Redimensionne la fenêtre de sorte que la zone cliente corresponde à la taille minimale du Sizer.
FitInside(objetWindow)Redimensionne la taille virtuelle de la fenêtre en fonction de la taille minimale du sizer.
GetItem(objetWindow, bool recursive = false)
GetItem(objetSizer, recursive = false)Trouve wxSizerItem qui détient la donnée sizer .
GetItem(index)Trouve wxSizerItem qui est situé dans le sizer à la position index .
GetSize()Retourne la taille actuelle du sizer.
GetPosition()Retourne la position actuelle du sizer.
GetMinSize()Retourne la taille minimale du sizer.
Layout()Refait la mise en page.
RecalcSizes()Cette méthode est abstraite et doit être remplacée par une classe dérivée.
SetDimension(x, y, width, height)Force le Sizer à prendre les dimensions données.
SetMinSize(width, height)Donne au Sizer une taille minimale.
SetMinSize(objetSize)Donne au Sizer une taille minimale.
SetItemMinSize(objetWindow, width, height)Fixe la taille minimale d'un élément.
SetItemMinSize(objetSizer, width, height)
SetItemMinSize(pos, width, height)Fixe la taille minimale d'un éléments.
SetSizeHints(objetWindow)Appelle Fit() en premier, puis wxTopLevelWindow:SetSizeHints() sur la fenêtre qui lui est passée.
SetVirtualSizeHints(objetWindow)Définit la taille minimale de la fenêtre pour correspondre à la taille minimale du sizer.
Show(objetWindow, show = true, recursive = false)Affiche ou cache la fenêtre.
Show(objetSizer, show = true, recursive = false)Affiche ou cache le Sizer.
Show(index, show = true)Affiche ou cache l'élément repéré par index.
logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 22 octobre 2012.
Valid XHTML 1.0 Transitional

wxSizer
Revenir en Haut
Connexion à la base de données impossible