我正在ImGui中创建文本。它会自动右对齐,如何使一个文本居中对齐?
ImGui::Text("Example Text");
我不相信有功能可以做到这一点。我知道您可以为一个框或小部件完成此操作,但是我将如何为一个简单的文本添加文本?
答案 0 :(得分:2)
这个 comment on a similar GitHub issue 有帮助,不过我自己还没有尝试过:
void TextCenter(std::string text) {
float font_size = ImGui::GetFontSize() * text.size() / 2;
ImGui::SameLine(
ImGui::GetWindowSize().x / 2 -
font_size + (font_size / 2)
);
ImGui::Text(text.c_str());
}
答案 1 :(得分:0)
void TextCentered(std::string text) {
auto windowWidth = ImGui::GetWindowSize().x;
auto textWidth = ImGui::CalcTextSize(text.c_str()).x;
ImGui::SetCursorPosX((windowWidth - textWidth) * 0.5f);
ImGui::Text(text.c_str());
}