1、组件的ID
只要是需要和使用者交互的组件,每一个组件都需要有一个ID,但是想Text这种组件可以不需要ID,但是想Button这种组件就需要一个ID。
Button("OK"); // Label = "OK", ID = hash of (..., "OK")
Button("Cancel"); // Label = "Cancel", ID = hash of (..., "Cancel")
ID就是创建的时候里面的参数。“OK”/“Cancel”。
2、创建的ID冲突了,应该怎么解决
①创建两个窗口:
Begin("MyWindow");
Button("OK"); // Label = "OK", ID = hash of ("MyWindow", "OK")
End();
Begin("MyOtherWindow");
Button("OK"); // Label = "OK", ID = hash of ("MyOtherWindow", "OK")
End();
②在ID里面使用补码的方式传给imgui,但是不给操作者显示
注意:这里是两个'#'号,使用两个#的时候,“#”前面的字符串就是当前组件的标签,也就是显示的字符,然后ID就是整个字符串,整个时候标签是可以一样的。