gohud

GoStyle — 東西統一在一個地方產生

← 控制項

直接呼叫 Button.new(),內距、高度與換行就會在不同畫面之間一點一點走樣。 這種走樣在程式碼審查時看不出來,在螢幕截圖裡卻一目了然。

群組函式
結構column row wrap_row padding spacer divider responsive_grid aspect foldable
文字label label_key line section typography
按鈕button button_key icon_button list_button list_row apply_icon style_choice_card style_chip_button style_chip_label
輸入line_edit textarea toggle checkbox slider picker select dropdown radio_group segmented choice_grid
顯示card chip hud_panel chip_panel avatar skeleton alert table tabs breadcrumb progress empty_state
介面零件surface box floating disc face_padding
輔助form fit_words natural_width tooltip_node card_body let_input_through
box() 一律回傳 StyleBoxFlat,因為呼叫端拿到它之後會去 調整 bg_colorcorner_radius。當自訂形狀必須保留時, 請改用 surface()

帶說明的清單列

GoStyle.list_button(GoIconSet.SWORD, "守誓者", _inspect, Color.TRANSPARENT,
    "長劍  /  攻擊 42", false)

有第二行的列會得到上下相等的內距,比單行的列更寬鬆,而標題與說明這一組會 在圖示旁邊保持垂直置中 — 即使容器把這一列拉高,或說明換行成好幾行,也一樣。 整列仍然是單一個點擊目標。

medieval_light 範例 — 兩行式清單列、快捷格與量條
中世紀範例中的兩行式清單列、快捷格與量條 — 在 medieval_light 底下呼叫的是同一批工廠函式。

會換行的列

把控制項放進 wrap_row 時,讓它們維持自然寬度。若放著換行不管,按鈕的最小寬度 會掉到幾乎為零,而該列就用這個值決定儲存格大小 — 標籤於是縮成一行一個字。 工廠函式替你擋掉了這件事。

永遠別讓空清單真的空著

page.add_child(GoStyle.empty_state(GoIconSet.BOX, "這裡還沒有東西"))

人看到一片空白的畫面,會讀成壞掉了

子類別掛鉤

每一個會建立子控制項的地方,都經過一個可覆寫的方法,所以繼承了 gohud 型別的專案, 不必複製程式碼就能把自己的子類別放進控制項內部

掛鉤控制項預設
_make_scroll()GoCoachMarkGoSurfaceGoScroll.new()
_make_close_button()GoPromptCardGoSurfaceGoIconButton.new()
_make_surface()GoSheetGoDialogsGoSurface.new()
_should_pause()GoCoachMark有互動視窗開著時隱藏卡片