-- imgui はフローティング ウィンドウ内でのみ機能するため、最初に作成する必要があります。 column_wnd = float_wnd_create(350, 150, 1, true) float_wnd_set_title(column_wnd, "imgui Demo") float_wnd_set_imgui_builder(column_wnd, "column_demo") float_wnd_set_onclose(column_wnd, "closed_demo") function column_demo(wnd, x, y) -- ここでは、テーブルを出力する 3 つの異なる方法を紹介します。 -- それらは同じものの非常に単純なバリエーションです! -- [方法 1] TableNextRow() を使用して新しい行を作成し、TableSetColumnIndex() を使用して列を選択します。 -- 多くの場合、以下は最も柔軟で使いやすいパターンです。 -- imgui.TextUnformatted("Table 1") -- imgui.BeginTable("table1", 3) -- for row = 0, 4, 1 -- do -- imgui.TableNextRow() -- for column = 0, 3, 1 -- do -- imgui.TableSetColumnIndex(column) -- imgui.TextUnformatted("Row " .. row .. " Column " .. column) -- end -- end -- imgui.EndTable() -- imgui.TextUnformatted("") -- 【方法2】 forループ+TableSetColumnIndex()ではなく、TableNextColumn()を複数回呼び出す。 -- これは通常、各列の内容を手動で送信するコードがある場合により便利です。 imgui.TextUnformatted("Table 2") imgui.BeginTable("table2", 3) for row = 0, 4, 1 do imgui.TableNextRow() imgui.TableNextColumn() imgui.TextUnformatted("Row " .. row) imgui.TableNextColumn() imgui.TextUnformatted("Some contents") imgui.TableNextColumn() imgui.TextUnformatted("123.456"); end imgui.EndTable() -- imgui.TextUnformatted("") -- [方法 3] 各セルの_前_に TableNextColumn() を呼び出します。 -- TableNextColumn() は自動的にラップアラウンドし、必要に応じて新しい roes を作成するため、TableNextRow() を呼び出すことはありません。 -- これは通常、すべてのセルに同じ種類のデータが含まれている場合により便利です。 -- imgui.TextUnformatted("Table 3") -- imgui.BeginTable("table2", 3) -- for item = 0, 14, 1 -- do -- imgui.TableNextColumn() -- imgui.TextUnformatted("Item " .. item) -- end -- imgui.EndTable() end function closed_demo(wnd) -- Tこの関数は、ユーザーがウィンドウを閉じるときに呼び出されます。 -- ウィンドウが既に破棄されているため、この関数では imgui 関数の描画または呼び出しは許可されない。 end