Как правильно выровнять текст в столбцах ImGui? - PullRequest
0 голосов
/ 22 сентября 2019

Предположим, я создаю таблицу со следующим:

ImGui::Columns(3);

ImGui::Text("Header 1");
ImGui::NextColumn();
ImGui::Text("Header 2");
ImGui::NextColumn();
ImGui::Text("Header 3");
ImGui::NextColumn();

ImGui::Text("1");
ImGui::NextColumn();
ImGui::Text("2");
ImGui::NextColumn();
ImGui::Text("3");
ImGui::NextColumn();

ImGui::Columns(1);

Как мне получить текст во второй строке (1, 2 и 3), чтобы он был выровнен по правому краю в столбце?Я видел CalcItemWidth и CalcTextSize, но не могу понять, как они работают в многостолбцовой строке.

1 Ответ

0 голосов
/ 22 сентября 2019

Я получил помощь в канале ImGui Discord и предложил следующее решение:

ImGui::NextColumn();
std::string text = "1";
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetColumnWidth() - ImGui::CalcTextSize(text.c_str()).x 
    - ImGui::GetScrollX() - 2 * ImGui::GetStyle().ItemSpacing.x);
ImGui::Text("%s", text);
...