wxWidgets实战:wxGrid创建表单之复选框样式

2023-12-26 15:42:54

1》
创建wxGrid

WX_GRID* m_fieldsGrid 
m_fieldsGrid = new WX_GRID( sbFields->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_fieldsGrid, m_symbol );

FDC_SHOW_NAME

在这里插入图片描述
FDC_SHOW_NAME其实上图表格中的Show Name一列,下面我们来研究如何在wxGrid表单创建复选框样式的列:

case FDC_SHOW_NAME:
   return aTypeName == wxGRID_VALUE_BOOL;

“wxGRID_VALUE_BOOL” 布尔型数据,是一种数据类型,用在网格控件wxGrid中。

wxGridCellAttr m_boolAttr

获取m_boolAttr

template <class T>
wxGridCellAttr* FIELDS_GRID_TABLE<T>::GetAttr( int aRow, int aCol, wxGridCellAttr::wxAttrKind  )
{
   case FDC_SHOW_NAME:  
      m_boolAttr->IncRef();
      return m_boolAttr;

创建m_boolAttr;

wxGridCellAttr*       m_boolAttr;
m_boolAttr = new wxGridCellAttr;
m_boolAttr->SetRenderer( new wxGridCellBoolRenderer() );
m_boolAttr->SetEditor( new wxGridCellBoolEditor() );
m_boolAttr->SetAlignment( wxALIGN_CENTER, wxALIGN_CENTER );

wxGridCellBoolRenderer是wxWidgets库中的一个类,用于在网格控件中渲染布尔值单元格,并允许用户以可视化的方式查看和操作这些数据。
在这里插入图片描述
wxGridCellBoolRender类是wxGridCellRender的子类,现在我们看看wxWidgets中包含了多少中Grid Cell的渲染器。
在这里插入图片描述
wxGridCellBoolEditor是一个用于表格控件(wxGrid)的编辑器类,用于编辑布尔类型的单元格数据。
在这里插入图片描述
wxWidgets中包含的所有wxGridCellEditor如下图所示:
在这里插入图片描述
我们可以看到wxGridEditor与wxGridRender基本上 是一一对应的。
如果我们想要冲毁一种新的表格列样式,那么需要可能实现两个类?一个类继承wxGridEditor,一个类继承wxGridRender。

销毁m_boolAttr

FIELDS_GRID_TABLE<T>::~FIELDS_GRID_TABLE()
{
    m_boolAttr->DecRef();

文章来源:https://blog.csdn.net/haimianjie2012/article/details/135215500
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。