What does the class btnm.get_map_array return?

when i use it in LittlevGL/MicroPython simulator for test to design ui, .i hope to get a list in python,but it just return <class ‘BJOB’>. And i can’t find this class on mircopython.

        self.btnm_map = ["0","0","0","0","0","0","0","0",""]
        print(self.btnm_map)
        self.button_matrix = lv.btnm(page)
        self.button_matrix.set_size(240,30)
        self.button_matrix.set_map(self.btnm_map)
        map_array = self.button_matrix.get_map_array()
        print(type(map_array))

Button’s text

There is a text on each button. To specify them a descriptor string array, called map , needs to be used. The map can be set with lv_btnmatrix_set_map(btnm, my_map) . The declaration of a map should look like const char * map[] = {"btn1", "btn2", "btn3", ""} . Note that the last element has to be an empty string !

In Usage, the author assume the map array is end of ‘\0’,this is why i think we can implemts the method of class btnm.get_map_array.

Continuing discussion from https://github.com/lvgl/lv_binding_micropython/issues/83

Reading arrays from lvgl objects is not implemented, by design.
The lvgl bindings is generic and not customized for specific lvgl functions. It automatically scans the header files of a C library and creates a Micropython module.
In the general case when you read an array from a C function, the size of the array is implementation dependent.
While in this case the array ends with an empty string, on other cases there might be some other rule for the array size and the automatic binding code cannot know that rule from the C API.

In your case, when you are setting the map array, just keep it as a member of your Python object as well.
lvgl doesn’t change the array you set, so you can always access it from your Python object instead of reading it by get_map_array .