Programación para Haiku Os - BColumnList



BColumnListView es una clase del Kit de Interfaz de BeOS (Interface Kit) que permite mostrar una lista de elementos con múltiples columnas. Cada columna puede tener su propio título y mostrar diferentes informaciones para cada elemento.

Para usar BColumnListView, debes seguir los siguientes pasos:Incluye los headers necesarios en tu archivo de código:

#include <InterfaceKit.h> 
#include <ColumnListView.h>


Crea una clase que herede de BColumnListView y define las columnas que quieres mostrar. Por ejemplo:


class MyListView : public BColumnListView 
public: 

 MyListView(BRect frame, const char* name, uint32 resizingMode, uint32 flags); 

 void AddColumns(); 
};


En el constructor de la clase, añade las columnas que quieres mostrar. Por ejemplo:

MyListView::MyListView(BRect frame, const char* name, uint32 resizingMode, uint32 flags) : BColumnListView(frame, name, resizingMode, flags)
 AddColumns(); 


 void MyListView::AddColumns()
 { 

 AddColumn(new BStringColumn("Nombre", 150, 20, 500, B_TRUNCATE_END), 0); 
AddColumn(new BStringColumn("Apellido", 150, 20, 500, B_TRUNCATE_END), 1); AddColumn(new BStringColumn("Edad", 50, 20, 500, B_TRUNCATE_END), 2);

 }

 
Crea una clase que herede de BStringItem y muestre los datos de cada elemento de la lista. Por ejemplo:


class MyListItem : public BStringItem 
public: 
 MyListItem(const char* name, const char* surname, const char* age); 
 const char* Name() const; 
 const char* Surname() const;
 const char* Age() const; 

 private:
 BString fName; BString fSurname; BString fAge;
};

 
En el constructor de la clase, almacena los datos de cada elemento y pásalos al constructor de BStringItem. Por ejemplo:

MyListItem::MyListItem(const char* name, const char* surname, const char* age) : BStringItem(name) {
 fName = name; 
 fSurname = surname; 
 fAge = age; 

 const char* MyListItem::Name() const 

 return fName.String(); 
}
 const char* MyListItem::Surname() const 
{
 return fSurname.String();
 }
 const char* MyListItem::Age() const {

return fAge.String(); }
Crea una instancia de MyListView y añade elementos de tipo MyListItem a la lista.
Por ejemplo:

// Crear una instancia de MyListView
MyListView* listView = new MyListView(frame, "my_list", B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE); // Leer los datos de la lista ReadListData(listData); // Añadir elementos a la lista for (int i = 0; i < listData.size(); i++) { MyListItem* item = new MyListItem(listData[i].name, listData[i].surname, listData[i].age); listView->AddItem(item); }
Con esto deberías tener una lista con tres columnas que muestra los datos de la lista. Puedes usar la clase MyListItem para acceder a los datos de cada elemento de la lista y hacer cualquier procesamiento necesario.

Espero que este mini tutorial te haya ayudado a entender cómo funciona BColumnListView. Si tienes alguna pregunta o necesitas más detalles, no dudes en preguntar.
Hora de Libertad

Post a Comment

Previous Post Next Post