gohud

GoStyle — un seul endroit où les choses se fabriquent

← Widgets

Appelez Button.new() directement et la marge intérieure, la hauteur et le retour à la ligne dérivent légèrement d'un écran à l'autre. Cette dérive est invisible en revue de code et évidente sur une capture d'écran.

GroupeFonctions
Structurecolumn row wrap_row padding spacer divider responsive_grid aspect foldable
Textelabel label_key line section typography
Boutonsbutton button_key icon_button list_button list_row apply_icon style_choice_card style_chip_button style_chip_label
Saisieline_edit textarea toggle checkbox slider picker select dropdown radio_group segmented choice_grid
Affichagecard chip hud_panel chip_panel avatar skeleton alert table tabs breadcrumb progress empty_state
Pièces de surfacesurface box floating disc face_padding
Utilitairesform fit_words natural_width tooltip_node card_body let_input_through
box() renvoie toujours un StyleBoxFlat, parce que les appelants le reçoivent et ajustent bg_color ou corner_radius. Utilisez surface() lorsqu'une forme personnalisée doit survivre.

Rangées de liste avec une description

GoStyle.list_button(GoIconSet.SWORD, "Garde-Serment", _inspect, Color.TRANSPARENT,
    "Épée longue  /  Attaque 42", false)

Une rangée à deux lignes reçoit des marges haute et basse égales, plus généreuses que celles d'une rangée simple, et le couple titre/description reste centré verticalement à côté de l'icône — y compris quand un conteneur étire la rangée en hauteur, et après que la description est passée sur plusieurs lignes. La rangée entière reste une seule cible tactile.

Exemple medieval_light — rangées de liste à deux lignes, emplacements rapides et barres
Rangées à deux lignes, emplacements et barres dans l'exemple médiéval — les mêmes appels de fabrique sous medieval_light.

Rangées qui s'écoulent

Placez les commandes dans wrap_row à leur largeur naturelle. Si le retour à la ligne reste actif, la largeur minimale d'un bouton tombe à presque rien et la rangée dimensionne sa cellule d'après elle — le libellé s'effondre à un caractère par ligne. La fabrique vous l'évite.

Ne laissez jamais une liste vide rester vide

page.add_child(GoStyle.empty_state(GoIconSet.BOX, "Rien ici pour l'instant"))

Les gens lisent un écran vide comme une panne.

Points d'extension par dérivation

Chaque endroit où un widget enfant est construit passe par une méthode redéfinissable : un projet qui dérive les types de gohud peut donc obtenir ses propres sous-classes à l'intérieur des widgets sans recopier de code.

Point d'extensionWidgetPar défaut
_make_scroll()GoCoachMark, GoSurfaceGoScroll.new()
_make_close_button()GoPromptCard, GoSurfaceGoIconButton.new()
_make_surface()GoSheet, GoDialogsGoSurface.new()
_should_pause()GoCoachMarkMasque la carte tant qu'une fenêtre modale est ouverte