gohud

GoStyle — un unico posto in cui le cose si costruiscono

← Widget

Chiama Button.new() direttamente e margine interno, altezza e andata a capo si disallineano un po' da schermata a schermata. Quel disallineamento è invisibile in una revisione del codice ed evidente in uno screenshot.

GruppoFunzioni
Strutturacolumn row wrap_row padding spacer divider responsive_grid aspect foldable
Testolabel label_key line section typography
Pulsantibutton button_key icon_button list_button list_row apply_icon style_choice_card style_chip_button style_chip_label
Inserimentoline_edit textarea toggle checkbox slider picker select dropdown radio_group segmented choice_grid
Visualizzazionecard chip hud_panel chip_panel avatar skeleton alert table tabs breadcrumb progress empty_state
Pezzi delle superficisurface box floating disc face_padding
Utilitàform fit_words natural_width tooltip_node card_body let_input_through
box() restituisce sempre uno StyleBoxFlat, perché i chiamanti lo ricevono e ne regolano bg_color o corner_radius. Usa surface() quando una forma personalizzata deve sopravvivere.

Righe di lista con una descrizione

GoStyle.list_button(GoIconSet.SWORD, "Custode del Giuramento", _inspect, Color.TRANSPARENT,
    "Spada lunga  /  Attacco 42", false)

Una riga con una seconda linea riceve margine interno uguale sopra e sotto, più generoso di una riga a linea singola, e la coppia titolo/descrizione resta centrata verticalmente accanto all'icona — anche quando un contenitore allunga la riga in altezza, e dopo che la descrizione è andata a capo su più linee. L'intera riga resta un unico bersaglio di tocco.

esempio medieval_light — righe di lista a due linee, slot rapidi e barre
Righe a due linee, slot e barre nell'esempio medievale — le stesse chiamate alla factory sotto medieval_light.

Righe che vanno a capo

Metti i controlli dentro wrap_row alla loro larghezza naturale. Con l'andata a capo attiva, la larghezza minima di un pulsante scende quasi a zero e la riga dimensiona la cella su quella — l'etichetta collassa a un carattere per riga. La factory lo impedisce al posto tuo.

Non lasciare mai vuota una lista vuota

page.add_child(GoStyle.empty_state(GoIconSet.BOX, "Qui non c'è ancora nulla"))

Chi guarda una schermata bianca la legge come rotta.

Hook per le sottoclassi

Ogni punto in cui viene costruito un widget figlio passa da un metodo sovrascrivibile, così un progetto che estende i tipi di gohud può ottenere le proprie sottoclassi dentro i widget senza copiare codice.

HookWidgetPredefinito
_make_scroll()GoCoachMark, GoSurfaceGoScroll.new()
_make_close_button()GoPromptCard, GoSurfaceGoIconButton.new()
_make_surface()GoSheet, GoDialogsGoSurface.new()
_should_pause()GoCoachMarkNasconde la scheda mentre è aperto un elemento modale