左右增加箭头按钮
static int counter = 0;
float spacing = ImGui::GetStyle().ItemInnerSpacing.x;//这个还不知道是干嘛的
ImGui::PushButtonRepeat(true);
if (ImGui::ArrowButton("##left", ImGuiDir_Left)) { counter--; }//创建左箭头
ImGui::SameLine(0.0f, spacing);
if (ImGui::ArrowButton("##right", ImGuiDir_Right)) { counter++; }//创建右箭头
ImGui::PopButtonRepeat();
ImGui::SameLine();
ImGui::Text("%d", counter);
彩色按钮 ID堆栈
彩色按钮,演示如何使用PushID()在ID堆栈中添加唯一标识符,以及如何更改样式。
for (int i = 0; i < 7; i++)
{
if (i > 0)
ImGui::SameLine();
ImGui::PushID(i);
ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor::HSV(i / 7.0f, 0.6f, 0.6f));
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, (ImVec4)ImColor::HSV(i / 7.0f, 0.7f, 0.7f));
ImGui::PushStyleColor(ImGuiCol_ButtonActive, (ImVec4)ImColor::HSV(i / 7.0f, 0.8f, 0.8f));
ImGui::Button("Click");
ImGui::PopStyleColor(3);
ImGui::PopID();
}
单选选项
static int e = 0;
ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine();
ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine();
ImGui::RadioButton("radio c", &e, 2);
文本和小控件对齐
ImGui::AlignTextToFramePadding();
将文本基线与框架小部件元素的基线对齐
(否则文本+SameLine+按钮序列默认情况下文本太高!
加了:
没加:
分界线
ImGui::Separator();
vec3输入框
static float vec4a[4] = { 0.10f, 0.20f, 0.30f, 0.44f };
ImGui::InputFloat3("input float3", vec4a);//可以有默认值
ImGui::IsItemHovered()
应该是鼠标触碰到了那个部分吧
ImGui::Text("- or me");
if (ImGui::IsItemHovered())
{
ImGui::BeginTooltip();
ImGui::Text("I am a fancy tooltip");
static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f };
ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr));
ImGui::EndTooltip();
}
上面就是鼠标触碰到了-or me这个字 就会出现一个曲线
mGui::BeginTooltip()
一般搭配ImGui::IsItemHovered()
ImGui::BeginTooltip();
ImGui::Text("I am a fancy tooltip");
static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f };
ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr));
ImGui::EndTooltip();
应该就是在鼠标边上出现这一段
还可以直接出现字符
ImGui::SetTooltip("I am a tooltip");*/